Adatbázisok 1. Kósa Balázs gyakorlata alapján Készítette: Nagy Krisztián 1. gyakorlat Relációs adatbázis Alap fogalmak (Forrás: http://digitus.itk.ppke.hu/~fodroczi/dbs/gyak2_1/ ) A relációs algebra egy speciális algebra, egy halmazorientált nyelv, amely algebrai eszközökkel dolgozik, és ezek segítségével új relációk hozhatók létre a régi relációkból. A relációs algebrai kifejezések alapjait tehát a relációk képezik. Ha a továbbiakban bemutatásra kerülő operátorokat alkalmazzuk a relációkra, vagy egyszerűbb algebrai kifejezésekre, akkor fokozatosan egyre bonyolultabb kifejezéseket tudunk felépíteni. Egy relációs algebrai kifejezést nevezhetünk lekérdezésnek is, mivel egy ilyen kifejezés megadja egy bizonyos kérdésünkre a választ egy adott adatbázisra nézve. Azaz a relációs algebra egy konkrét példa lekérdező nyelvre, amely lehetővé teszi az adatmanipulációt és az adatok elérését az adatbázisból. Definíció: Relációnak nevezzük a direkt szorzat bármely részhalmazát: A D1, D2,, Dn adott halmazok a reláció ún.(érték)tartományai (=angolul Domain). A gyakorlatban olyan kétdimenziós táblákkal jelöljük a relációkat, melyek reprezentálják az adatokat a relációs modellben. Egy konkrét táblázatot a reláció egy előfordulásának, vagy példányának nevezünk. Az 1.ábra egy példát mutat erre. E reláció előfordulásnak a neve legyen Dolgozók.
A sorok: Definíció: A reláció egy eleme a táblázat egy sora. A reláció olyan táblázatnak tekinthető, amelynek nem lehetnek azonos sorai. A sorok sorrendje tetszőleges. A sorokat rekord-nak is szokás nevezni. Az attribútumok: A relációs adatbázisok kezelésének alapvető feltétele, hogy az értéktartományoknak megfelelő absztrakt jellemzők neveit felhasználjuk a sor elemeinek jelölésére. Definíció: Az értéktartományok elemeit felvevő jellemzőket attribútumoknak nevezzük. Az attribútumok a relációk első sorában, ún. fejrészében találhatók. Ezek tehát a relációban szereplő oszlopoknak a nevei, melyek általában megadják az abban az oszlopban lévő adatok jelentését. A reláción belül ezeknek a neveknek egyedieknek kell lenniük, de más relációk tartalmazhatnak azonos nevű oszlopokat. A Dolgozók reláció attribútumai: név, adószám, születési év, beosztás és fizetés, ahol például a név attribútum a dolgozók neveit tartalmazó oszlopot jelöli. A sémák: Definíció: A reláció neve és a reláció attribútumainak a halmaza együttesen alkotja a reláció sémáját. A reláció sémáját a reláció nevével és az attribútumainak zárójelek közötti felsorolásával adjuk meg. A Dolgozók relációsémája tehát: Dolgozók(név, adószám, születési év, beosztás, fizetés) Ugyanezt a sorrendet vesszük akkor is, amikor megjelenítjük a relációt, vagy annak sorait. A reláció sémáját a táblázat fejlécébe írjuk. A komponens : Definíció: A sor egy elemét komponensnek nevezzük. A reláció minden egyes fejlécben lévő attribútumához tartozik a sorban egy komponens. Így a Dolgozók relációban a kilenc sor közül az első sornak öt komponense van: Kerekes Ádám, 3869828, 1970, igazgató, 200000, amelyek sorrendben a név, adószám, születési év, beosztás és fizetés attribútumokhoz tartoznak. Ha a sorokat külön szeretnénk leírni, akkor zárójelek közé téve, vesszővel elválasztva soroljuk fel a komponenseket. Például: (Kerekes Ádám, 3869828, 1970, igazgató, 200000) Megemlítendő, hogy amikor egy sor magában van, akkor nem látjuk az attribútumokat, ezért meg kell adni valamilyen hivatkozást, hogy melyik relációhoz tartozik a sor. A komponenseket pedig ugyanolyan sorrendben kell felírni, amilyen sorrenbdben felsoroltuk az attribútumokat a relációsémában. Hasznos ellenörző kérdések: http://digitus.itk.ppke.hu/~fodroczi/dbs/gya k2_1/alap_ell.html
Azt a megkötést tesszük, hogy a mezőkben nem szerepelhetnek összetett értékek. (halmaz, stb.) Műveletek Unio: Metszet: Különbség: Projekció (vetítés): Használata: A Tulaj táblából a kor oszlopot adja vissza Szelekció (kiválasztás): - Sorok kiválasztása Használata: Kiválassza azokat a sorokat, ahol az adott tulaj fizetése -nél nagyobb. Másik példa: Összetett feltétel: Az unió,metszet és különbség esetén további megkötéseink vannak: Eltérő attributumok esetén nem lehet használni ezeket a műveleteket., továbbá az attributumok sorrendje is számít! - ra például nem lehet!
Feladatok 1.Feladat: Adott az alábbi tábla. A szeret tábla név gyümölcs CSERESZNYE BARACK KORTE LUCA LUCA BALAZS ANDRAS BARACK ANDRAS ANDRAS KORTE ODON VALERIA HAJNALKA HAJNALKA FERENC FERENC FERENC IMOLA EDE EDE AGOTA KORTE AGOTA AGOTA AGOTA BARACK ZOLTAN BARACK EMESE PETRA SZOLO PETRA TAMAS TAMAS TAMAS SZOLO SZOLO PETER KATALIN KATALIN KATALIN
Melyek azok a gyümölcsök, amiket Anna szeret? Melyek azok a gyümölcsök, amiket Anna nem szeret? Kik azok, akik szeretik az almát, de nem szeretik a körtét? Kik azok, akik vagy az almát, vagy a körtét szeretik? Megoldások: a. feladat: Melyek azok a gyümölcsök, amiket Anna szeret? b. feladat: Melyek azok a gyümölcsök, amiket Anna nem szeret? c. feladat: Kik azok, akik szeretik az almát, de nem szeretik a körtét? d. feladat: c alapján Újabb művelet: Descartes-szorzat: - mindent párosítunk mindennel R S A B B C A R.B S.B C a b 1 2 a b 1 2 d e d e 1 2 Átnevezés művelete: -re nevezzük át: R-t P-re nevezzük át:
Feladat: Adott táblák: Csatahajók Hajóosztályok (osztály, típus, ország, ágyúkszáma, kaliber, vízkiszorítás) Hajók (név, osztály, felavatva) Csaták (név, dátum) Kimenetelek (hajó, csata, eredmény) Hajóosztályok osztály típus ország ágyúkszáma kaliber vízkiszorítás Bismarck bb Németország 8 15 42000 Iowa bb USA 9 16 46000 Kongo bc Japán 8 14 32000 North Carolina bb USA 9 16 37000 Renown bc Nagy-Britannia 6 15 32000 Revenge bb Nagy-Britannia 8 15 29000 Tennessee bb USA 12 14 32000 Yamato bb Japán 9 18 65000 Csaták név dátum Denmark 5/24- Strait 27/41 Guadalcanal 11/15/42 North Cape 12/26/43 Surigao Strait 10/25/44
Kimenetelek hajó csata eredmény Arizona Pearl Harbor elsüllyedt Bismarck Denmark Strait elsüllyedt California Surigao Strait ok Duke of York North Cape ok Fuso Surigao Strait elsüllyedt Hood Denmark Strait elsüllyedt King George V Denmark Strait ok Kirishima Guadalcanal elsüllyedt Prince of Wales Denmark Strait sérült Rodney Denmark Strait ok Scharnhorst North Cape elsüllyedt South Dakota Guadalcanal sérült Tennessee Surigao Strait ok Washington Guadalcanal ok West Virginia Surigao Strait ok Yamashiro Surigao Strait elsüllyedt Hajók név osztály felavatva California Tennessee 1921 Haruna Kongo 1915 Hiei Kongo 1914 Iowa Iowa 1943 Kirishima Kongo 1915 Kongo Kongo 1913 Missouri Iowa 1944 Musashi Yamato 1942 New Jersey Iowa 1943 North Carolina North Carolina 1941 Ramillies Revenge 1917 Renown Renown 1916 Repulse Renown 1916 Resolution Revenge 1916 Revenge Revenge 1916 Royal Oak Revenge 1916 Royal Sovereign Revenge 1916 Tennessee Tennessee 1920 Washington North Carolina 1941 Wisconsin Iowa 1944 Yamato Yamato 1941
Melyek azok a hajók, amelyeket 1921-ben avattak fel és elsűllyedtek? Pearl Harborban milyen Japán hajó volt? Feladat: Térjünk vissza a Szeret táblára (Előző előtti feladat) Kik szeretnek legalább két gyümölcsöt? -et: