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: Szelekció (kiválasztás): Használata:
A Tulaj táblából a kor oszlopot adja vissza - Sorok kiválasztása 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 ANNA ANNA ANNA ANNA ANNA ANNA LUCA LUCA BALAZS ANDRAS ANDRAS ANDRAS ODON VALERIA HAJNALKA HAJNALKA FERENC FERENC FERENC ANNA IMOLA EDE EDE AGOTA AGOTA AGOTA AGOTA ZOLTAN EMESE PETRA PETRA TAMAS TAMAS TAMAS ANNA PETER KATALIN KATALIN KATALIN
gyümölcs ALMA DINNYE SZILVA CSERESZNYE BARACK KORTE DINNYE ALMA DINNYE BARACK SZILVA KORTE ALMA ALMA DINNYE SZILVA ALMA SZILVA EPER EPER DINNYE EPER DINNYE KORTE ALMA SZILVA BARACK BARACK DINNYE SZOLO EPER ALMA DINNYE SZOLO SZOLO ALMA DINNYE SZILVA EPER
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: R A a d
- mindent párosítunk mindennel S
B b e
B 1
Átnevezés művelete: -re nevezzük át:
R-t P-re nevezzük át:
C 2
A a d
R.B b e
S.B 1 1
C 2 2
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 Bismarck Iowa Kongo North Carolina Renown Revenge Tennessee Yamato
típus bb bb bc
ország Németország USA Japán
bb bc bb bb bb
USA Nagy-Britannia Nagy-Britannia USA Japán
Csaták név Denmark Strait Guadalcanal North Cape Surigao Strait
dátum 5/2427/41 11/15/42 12/26/43 10/25/44
ágyúkSzáma kaliber vízkiszorítás 8 15 42000 9 16 46000 8 14 32000 9 6 8 12 9
16 15 15 14 18
37000 32000 29000 32000 65000
Kimenetelek hajó Arizona Bismarck California Duke of York Fuso Hood King George V Kirishima Prince of Wales Rodney Scharnhorst South Dakota Tennessee Washington West Virginia Yamashiro
csata Pearl Harbor Denmark Strait Surigao Strait North Cape Surigao Strait Denmark Strait Denmark Strait Guadalcanal Denmark Strait Denmark Strait North Cape Guadalcanal Surigao Strait Guadalcanal Surigao Strait Surigao Strait
eredmény elsüllyedt elsüllyedt ok ok elsüllyedt elsüllyedt ok elsüllyedt sérült ok elsüllyedt sérült ok ok ok elsüllyedt
Hajók név California Haruna Hiei Iowa Kirishima Kongo Missouri Musashi New Jersey North Carolina Ramillies Renown Repulse Resolution Revenge Royal Oak Royal Sovereign Tennessee Washington Wisconsin Yamato
osztály felavatva Tennessee 1921 Kongo 1915 Kongo 1914 Iowa 1943 Kongo 1915 Kongo 1913 Iowa 1944 Yamato 1942 Iowa 1943 North Carolina 1941 Revenge 1917 Renown 1916 Renown 1916 Revenge 1916 Revenge 1916 Revenge 1916 Revenge Tennessee North Carolina Iowa Yamato
1916 1920 1941 1944 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: