Adatbazis és szoftvérféjlésztés (wéb-programozas)
Tartalomjegyzék Rendszer:................................................................................................................................................................. 2 Erőforrás: ............................................................................................................................................................ 2 Ismeretelméleti alapfogalmak ................................................................................................................................ 2 Információ: ......................................................................................................................................................... 2 Az adatok egymás közötti viszonya .................................................................................................................... 2 Hír: ...................................................................................................................................................................... 2 Kód: ..................................................................................................................................................................... 2 Modell: .................................................................................................................................................................... 3 Konstrukció: ........................................................................................................................................................ 3 Objektum: ........................................................................................................................................................... 3 A modell alkotás célja: ........................................................................................................................................ 3 RELÁCIÓS ADATMODELL ......................................................................................................................................... 4 Rendszerelemzés..................................................................................................................................................... 7 1.
Rendszertervezés (logikai tervezés) ........................................................................................................... 7 Első normálforma (1NF): ................................................................................................................................ 8 Adatok közötti funkcionális kapcsolat ............................................................................................................ 8
AZ ADATMODELLEZES ALAPFOGALMAI Rendszer: Egymással kölcsönhatásban álló elemek (objektumok) együttese, melyek a környezet számára egységes egészként jelenik meg Működési folyamat: A rendszer állapotváltozásainak sorozata, a rendszer erőforrásainak transzformációja, átalakítása.
Erőforrás: A rendszer működéséhez (működtetéséhez) szükséges objektumok, tényezők. Erőforrás kategóriák gazdasági rendszerekben: Materiális jellegű o Anyagok o Eszközök o Energia Emberi Financiális (pénzeszközök) Információ (tudás, ismeretek)
Ismeretelméleti alapfogalmak
Információ Adat Hír
Információ: Értelmezett, hasznosítható, új ismeret, amely felhasználáskor bizonytalanságot (ismeret hiányt) szüntet meg Forrás (elsődleges) információ: Közvetlenül a rendszerből, a működési folyamatból érzékeléssel (méréssel, megszámlálással…) szerzett ismeret Származtatott (másodlagos) információ: Feldogozott adatokból, azok értelmezésével keletkező új ismeret Adat: Formalizált és rendszerint rögzített ismeret. Más oldalról közelítve: olyan jelkonfiguráció, amely ismeretet hordoz. Az adat aspektusai: Forma (szintaxis): Az ismeret leképzésére, rögzítésére szolgáló jelsorozat. Tartalom (szemantika): Az adat jelentése, az az ismeret mennyiség, amelyet az adatot reprezentáló jelsorozat hordoz Szerkezet (struktúra)
Az adatok egymás közötti viszonya
Logikai: a valóságot leképező összefüggések Fizikai: a tárolt adatok elhelyezési és visszakeresési összefüggései
Hír: Közlésre, továbbításra szánt, mozgásban lévő ismeret
Kód: Általánosságban: egyezményes jelsorozat egy valós vagy gondolati objektum vagy egy jellemzőjének leképzésére. Az objektum itt lehet tárgyi jellegű vagy esemény, jelenség, fogalom, akár egy másik kód is. Két fontos momentuma: o Jelsorozat: a kód formája, szintaxisa
o o o
Leképzés: az a szabály, ahogy a jellemző és a jelsorozat – általában kölcsönösen – megfeleltethető egymásnak Kódolás: a szabály alkalmazása, vagyis az a művelet, amellyel a jellemzőnek megfeleltetjük a jelsorozatot Dekódolás: a szabály inverze, vagyis a jelsorozat visszaalakítása az eredeti jellemzővé, illetve ennek ismeretévé
Modell: Olyan konstrukció, amely egy objektumnak a modell alkotás céljából lényeges jellemzőit tükrözi
Konstrukció: Ember által megalkotott mechanikai (pl.: jármű), grafikus (pl.: folyamatábra, hálóterv), matematikai (pl.: egyenlet), verbális (szöveges), táblázatos (pl.: mátrix, döntési tábla) vagy egyéb szerkezet.
Objektum: Egy rendszer szerkezetét, működését meghatározó, vagy befolyásoló elem, amely lehet tárgy, személy, esemény, fogalom, vagy bármilyen létező (valós vagy logikai) dolog.
A modell alkotás célja: Általában vizsgálat, elemzés, tervezés, az adott rendszer vagy objektum megismerése vagy beavatkozás a rendszer működésébe Modell-alkotás szükségessége: A modellezendő rendszer méreteiben túl nagy vagy túl kicsiny (világegyetem, keletkezése – atom, szubatomi szerkezetek, Higgs-bozon, Higgs-tér, kvantumelmélet) A valósában lezajló változások túl gyorsak vagy túl lassúak (robbanás – evolúció) vagy a vizsgálat közben a rendszer megváltoztatja a struktúráját (társadalmi rendszerek) A vizsgálandó rendszer struktúrája nagyon bonyolult (hullámterjedés, meteorológiai előrejelzések) A valóság közvetlen tanulmányozása túl költséges A válóság tanulmányozása (a vizsgálati beavatkozás) megváltoztatja a folyamatok működését (munkafolyamatok megfigyelése), a rendszer struktúráját, vagy a rendszer tönkremeneteléhez vezet (gépkocsi tőréspróba)
Rélacios adatbazisok RELÁCIÓS ADATMODELL A különböző adatmodelleken alapuló rendszerek közül a XX. század végére a relációs adatbázis-kezelő rendszerek egyeduralkodóvá váltak, háttérbe szorítva a hálós, hierarchikus adatmodelleken alapuló rendszereket. A relációs adatbázis-kezelés alapjait 1971-ben az E. F. Codd amerikai kutató által megalkotott relációs adatmodell elmélete alapozta meg, melynek lényege, hogy az egyedeket, tulajdonságokat és kapcsolatokat egyaránt táblázatok, úgynevezett adattáblák segítségével adja meg. A relációs adatmodell legfontosabb eleme a matematikai reláció fogalma, Mint minden adatmodell, ez is egyrészt definiálja azokat a jellemző adatszerkezeteket, amelyeken dolgozni, és azokon a műveletek, amelyek rajta értelmezettek, illetve az adatintegritási komponenst is, mely elsődlegesen az adatok értékét jellemzi, szabályozza.(Pl.: első tábla a termelő neve, második tábla az ügyintéző neve, harmadik tábla telephely, stb.) A legelterjedtebb relációs adatbázis-kezelő rendszerek az MS ACCESS, MS CQL, MySQL, ORACLE, INGRES. Napjainkban az adatbázis-kezelésben szétvált a fizikai és logikai adatmodell, így a különböző számítógépes rendszerektől függetlenül lehet az adatbázisok szerkezettét (sémáját) tervezni és elkészíteni. Fizikai szinten az adatbázis valamilyen állományszerkezetben van tárolva, melynek kezelése az operációs rendszer feladata. Logikai szinten a relációs táblában (adattábla) jelennek meg. Az adattábla sorokból és oszlopokból áll. Egy sorát rekordnak nevezzük, amely annyi mezőből áll, ahány oszlopa van a táblának. Az oszlopok számát nevezik a reláció fokszámának és a sorainak a számát a reláció számosságának. Attribútumnak nevezünk egy tulajdonságot, amelyet a megnevezésével azonosítunk, és értéktartományt rendelünk hozzá. A relációs adatmodellnél az értéktartomány csak atomi értékekből állhat, vagyis elemei nem lehetnek struktúrák, halmazok stb. Az értéktartomány megadása rendszerint típus és hossz megadását jelenti. A reláció nevét és a reláció attribútumainak halmazát egy relációsémának nevezzük. ATTRIBÚTUM
REKORD
MEZŐ
1. ábra. Reláció (adattábla) elemei A relációsadat bázis táblákból és a táblák közötti kapcsolatból épül fel. A kapcsolat az egyik tábla elsődleges kulcsa (olyan mező vagy mezőcsoport, mely egyértelműen azonosítja az
adattábla rekordjait) és a másik tábla külső (idegen) kulcsa (oly azonosító, amelynek segítségével egy másik tábla elsődleges kulcsára hivatkozhatunk) között jön létre. Kapcsolatok fajtái: Egy-egy típus kapcsolat (1:1) az egyik egyedhalmaz mindegyik eleméhez a másik egyedhalmaznak pontosan egy elem kapcsolódik. (Pl. a férfi és a nő egyedek között a házastárs kapcsolat) Egy-több típus kapcsolat (1:N) az egyik egyedhalmaz mindegyik eleméhez a másik egyedhalmaznak több eleme is tartozhat. (Pl. osztály és tanuló egyedek között)
Vevőkód Vevő Telefonsz. Termékkód Termék Leírás
1-N
N-1
Termék Termékkód Vevőkód Vevő Vevőkód Termékkód
Több-több típus kapcsolat (N:M) az egyik egyedhalmaz minden eleméhez a másik egyedhalmaz több eleme tartozhat,és fordítva, tehát a másik egyedhalmaz elemeihez tartozható az egyik egyedhalmaz több eleme is. (Pl. szerző és könyv egyedek kapcsolata
Vevők Vevőkód Vevő neve Telefon
Termékek Termékkód Terméknév
Rendelés Termékkód Vevőkód Az előző ismereteket összefoglalva összegyűjthetjük a relációs adatmodell legfontosabb jellemzőit: - A relációs modell két-dimenziós, egymással kapcsolatban álló, speciális tulajdonságokkal rendelkező táblákból áll. Minden relációnak van egy neve, amelyik azt egyértelműen azonosítja az adatmodellben. Jól tervezett adatbázisban ez megegyezik az általa reprezentált egyedtípus elnevezésével, vagy utal arra.
- Egy sor és egy oszlop találkozásánál (cella) csak egyetlen elemi adat szerepelhet. - Egy oszlopban csak azonos típusú adatok lehetnek. - Egy adattáblában nem lehet két azonos nevű oszlop (egyedi mezőnevek). - Az oszlopok sorrendjének nincs jelentősége az adatmodellben. De ha egyszer, a tábla „fejlécében” megadjuk, akkor ezen relációnak minden sorában ennek a sorrendnek megfelelően kell az attribútumok értékét tárolnunk. - A sorok sorrendje a relációs modell szempontjából közömbös, a relációk sorainak nincsen kitüntetett rendezettsége. - Mivel a reláció egyedei a tábla egyes sorai, melyeknek azonosítása a sorok tartalma alapján történik, egy relációnak nem lehet két teljes azonos sora. Ebből következik, hogy minden relációban van az oszlopnak legalább egy olyan kombinációja, amely egyértelműen azonosítja a sort, meghatározza a sor további oszlopainak az értékét. ezt az oszlopot (oszlopkombinációit vagy ezek egyikét), amely megfelel az általános adatmodellben az egyedtípus azonosítójának, nevezzük elsődleges kulcsnak (Primary Key). - A táblák közötti relációk kapcsolómezőkön át valósíthatók meg.
Futár
Rendelés
Futárazonosító Futár név Futár tel.
Rendelés azonosító Vevőazonosító Futárazonosító Dátum Idő
Tétel Rendelés azonosító Pizza azonosító DB Vevő Vevőazonosító Vevő név Vevő cím Pizza Pizza azonosító Pizza név Pizza ár
Adatbazisok térvézésé Az adatbázis tervezése több lépésből összetevődő folyamat.
Rendszerelemzés
Rendszertervezés (logikai tervezés)
Fizikai szint (fizikai tervezés)
Rendszerelemzés Először a megoldandó feladatot, az adatbázis célját, az alkalmazás rendelését határozzuk meg. Vizsgáljuk meg az alkalmazási területet, hogyan oldanánk meg hagyományos eszközökkel a feladatot. Készítsünk ,,interjúkat” az adatbázis leendő használóival. Meghatározzuk a tárolandó adatok körét, azok egymás közötti kapcsolatait és az adatbázissal szemben felmerülő igényeket.
1. Rendszertervezés (logikai tervezés) A logikai tervezés végrehajtásához nem kell számítógép, és az elkészült adatbázisterv bármilyen relációs adatbázis-kezelő program segítségével megvalósítható, függetlenül az adott operációs rendszertől. A logikai tervezés fő feladata a redundancia megszüntetése. Redundanciáról akkor beszélünk, ha valamely tényt vagy a több adatból levezethető mennyiséget ismételten (többszörösen) tároljuk az adatbázisban. A redundancia, a szükségtelen tároló terület lefoglalása mellett, komplikált adatbázis - frissítési és karbantartási műveletekhez vezet. A redundancia megszüntetésének módja a normalizálás. A normalizálás az adatbázisban található adatok rendszerezését jelenti normálformák segítségével. A különböző
normálformák egymásra épülnek. A tervezés során a legmagasabb normálforma elérése a cél, mely több lépésben alakítható ki. Az első három normálforma a funkcionális függőségekben adódó redundanciák megszüntetésére koncentrál. A legtöbb alkalmazás esetében a harmadik normálforma a szükséges legmagasabb szint, így a továbbiakban az első három normálformával ismerkedünk meg. Első normálforma (1NF):
Ha egy reláció minden oszlopában csak egy értéket tárolunk, akkor első normálformában van a reláció. Az első normálforma pontos definíciója a következő: Egy reláció első normálformában (1NF – ben) van, ha minden sorának minden attribútumértéke elemi és egy értéket vesz fel, vagyis ha minden sorhoz tartozik (legalább egy) kulcs, melytől az összes többi oszlop funkcionálisan függ. Adatok közötti funkcionális kapcsolat
Adatok között akkor áll fent funkcionális kapcsolat, ha egy vagy több adat konkrét értékéből más adatok egyértelműen következnek. Például a személyi szám és a név között funkcionális kapcsolat áll fenn, mivel minden embernek különböző személyi száma van. Ezt a SZEMELYI_SZAM NEV kifejezéssel jelöljük vagy pedig egy diagrammal.
NÉV
SZEMÉLYI_SZÁM
3.2 ábra Funkcionális függőség diagram Személyi azonosító 1 – férfi, 2 – nő
szül év hónap nap
egyedi azonosító
pl.2-19980706-6789
Adóigazolvány szám 1234567891 TAJ – Társadalombiztosítási azonosító jel 222 222 222 A funkcionális függőség bal oldalát a függőség meghatározójának nevezzük. A jobb oldalon lévő egy, csak egy értéket határoz meg a funkcionális függőség. Nem áll fenn funkcionális függőség akkor, ha a meghatározó egy értékét több attribútum értékkel hozhatjuk kapcsolatba. Például a NEV SZULETESI_EV állítás nem igaz, mert több személynek lehet azonos neve, akik különböző időpontokban születtek. Néhány évvel ezelőtt a SZEMELYI_SZAM AUTO_TIPUS funkcionális függőség igaz volt, mert mindenkinek csak egy autója lehetett. Ma azonban ez már nem állja meg a helyét. Az adatok közötti funkcionális függőségek az adatok természetéből következnek, nekünk csak fel kell ismerni ezeket a törvényszerűségeket. A tervezés során nagyon fontos, hogy ezeket pontosan felismerjük és figyelembe vegyük.
A funkcionális függőség jobb oldalán több attribútum is állhat. Például az AUTO_RENDSZAM TIPUS, TULAJDONOS funkcionális függőség azt fejezi ki, hogy az autó rendszámából következik a típusa és a tulajdonos neve, mivel minden autónak különböző a rendszáma, minden autónak egy tulajdonosa és típusa van. Ezt diagrammal ábrázolhatjuk ebben a viszonylatban az egyed az autó.
Típus Rendszám Tulajdonos 3.3 ábra Funkcionális függőség több meghatározott értékkel Az is előfordulhat, hogy két attribútum kölcsönösen függ egymástól. Ez a helyzet például a házastársak esetén FERJ_SZEM_SZAMA FELESEG_SZEM_SZAMA FELESEG _SZEM_SZAMA FERJ_SZEM_SZAMA. Mindkét funkcionális kapcsolatra igaz és ezt a FERJ_SZEM_SZAMA FELESEG_SZEM_SZAMA jelöléssel fejezzük ki. Természetesen a fenti összefüggés a többnejűséget megengedő országokban nem teljesül. Nézzük például a TANULÓ (kód, név, cím, hobbi) sémájú relációt. Nincs 1NF-ben, mert a cím összetett attribútum nem elemi: a város utca, házszám tulajdonságokból állhat. A hobbi attribútum pedig több értéket vehet fel. Az összetett attribútumot új attribútumok beiktatásával lehet megszüntetni. A többértékű attribútum megszüntetése úgy történhet, hogy minden sort annyiszor leírunk, ahányszor szükséges.