Adat vs. Információ. Adatok: Információ: Az adatok és információk közötti különbség nem strukturális, hanem funkcionális.

Hasonló dokumentumok
Adat vs. Információ. Adatok: Információ: Az adatok és információk közötti különbség nem strukturális, hanem funkcionális.

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

BEVEZETÉS Az objektum fogalma

BEVEZETÉS Az objektum fogalma

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

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

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

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

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

Adatmodellezés. 1. Fogalmi modell

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

Adatbázis, adatbázis-kezelő

Adatbázisok* tulajdonságai

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


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

Adatbázis-kezelés. alapfogalmak

Adatbázis rendszerek SQL nyomkövetés

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

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

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

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

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

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

GEIAL Kovács László. GEIAL Kovács László

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

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

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

Adatmodellek. 2. rész

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

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

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

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

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

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 elmélete 9. előadás

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

Adattípusok. Max. 2GByte

Adatbázis-kezelés alapok Adatbázisok című tárgyhoz, ismétlés kapcsán

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

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

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

Adatbázisok I A relációs algebra

Adatbázisok I. Az SQL nyelv

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

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

Adattípusok. Max. 2GByte

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

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

Bevezetés: az SQL-be

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

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

Adatbázis rendszerek 7. Matematikai rendszer amely foglal magában:

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

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

ADATBÁZIS-KEZELÉS. Adatbázis-kezelő rendszerek

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

Adatbázis Rendszerek

Adatbázis rendszerek. dr. Siki Zoltán

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

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

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

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

Adatbázismodellek. 1. ábra Hierarchikus modell

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:

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 parancsok feldolgozása

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

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

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

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

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

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.

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

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

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

Csima Judit szeptember 6.

Adatbázisok elmélete

SQL DDL-2 (aktív elemek) triggerek

ADATBÁZISKEZELÉS ADATBÁZIS

ADATBÁZIS-KEZELÉS. Modellek

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

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

Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet

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

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

Informatikai alapismeretek Földtudományi BSC számára

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

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

Az adatbázisrendszerek világa

Adatbázis rendszerek I

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

LEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

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

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Webfejlesztés 4. alkalom

ADATBÁZIS-KEZELÉS Demetrovics Katalin

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

Adatbázisok - 1. előadás

Lekérdezések az SQL-ben 1.rész

Átírás:

Adatbázisok

Adat vs. Információ Adatok: Nyers tények Feldolgozatlan információ Az információ építőelemei Tárgyak, események és környezetük tlajdonságait reprezentálják Megfigyelések eredményeként jönnek létre. Addig azonban nem használhatók fel, amíg nincsenek használható (azaz releváns) formában Információ: Feldolgozott adat Információs rendszerek hozzák létre, tárolják, keresik vissza, továbbá dolgozzák fel őket Az adatok és információk közötti különbség nem strktrális, hanem fnkcionális.

Elvárások az adatok kezelésével kapcsolatosan A legalapvetőbb feladatok megoldása (bevitel, módosítás, törlés, lekérdezés) Redndancia-mentes tárolás (nincs adatismétlődés) Adatintegritás megőrzése (az adatok érvényesek és ellentmondás-mentesek) Program és adatfüggetlenség (az adattárolás módja és a kezelő program teljesen elkülöníthető)

Az adatbázis fogalma Hétköznapi értelemben rendezett, valamilyen szempont szerint tárolt adatok összessége. Az adatbázisban az adatok között meghatározott kapcsolatok vannak. Nemcsak az adatok rendezett tárolását, hanem azok kezelését is lehetővé teszi, mert a kapcsolatok nélkül az adatok eltérően értelmezhetők. Az eltárolt adatokat, azok jellemzőit metaadatoknak nevezzük Az adatbázis adott célból összeállított adatok rendezett szerkezete, mely lehetővé teszi adatok és segédinformációk tárolását és visszanyerését. Az eltárolt adatok strktúrája és a kezelő rendszer együttese.

Adatbázisok Adatbázis: adatok gyűjteménye, amelyeket az adatbázis-kezelő rendszer (DBMS Database Management System) kezel. Kezelt adatrendszer: adatbázis Kezelő programrendszer: adatbáziskezelő

Adatbázis-kezelő rendszer jellemzői Óriási adatmennyiséget tárolhat Rendszerezett és hatékony adatkinyerés elengedhetetlen Alapfnkciók: Létrehozás, elemek definiálása Adatok mentése, tárolása, megnyitása Lekérdezések Adatvédelem, kódolás, hozzáférési jogok

Adatbázis-kezelő rendszer fogalma Olyan speciális szoftverrendszer, amellyel lehetséges az adatbázisokban tárolt adatok definiálása kezelése karbantartása felügyelete

Az adatbázis-kezelő rendszerrel szembeni elvárások Új adatbázisok létrehozása adatdefiníciós nyelv segítségével. (DDL) Meglévő adatok lekérdezése, módosítása lekérdező vagy adatmaniplációs nyelv segítségével. (SQL) Támogassa az adatok hosszú időn át történő biztonságos tárolását. Felügyelje a több felhasználó egy időben történő adathozzáférését

Adatbázis-kezelő rendszerekkel szemben támasztott követelmények Adatintegritás (az adatok és kapcsolatok helyessége, érvényessége és ellentmondás-mentessége) Rgalmasság (az adatok egyszerű módosíthatósága) Hatékonyság (gyors keresés és módosítás) Adatfüggetlenség (hardver és szoftverfüggetlenség) Adatbiztonság (védelem hardver és szoftverhibákkal szemben) Adatvédelem (illetéktelen felhasználókkal szemben) Osztott hozzáférés (több felhasználó egyidejű hozzáférésének biztosítása)

Adatbázis-kezelő rendszerek segédprogramjai Adatbázis adminisztrátor (a rendszer működéséhez szükséges paraméterek beállítása) Adatbázis-kezelő segédprogramok (adattáblák, eljárások, indexelések kezelése) Archiváló, biztonsági mentést szolgáló segédprogramok Alkalmazásfejlesztés eszközei SQL alapú kliensprogramok (más adatbázis-kezelők adatainak lekérdezése SQL tasítások segítségével)

Adatbáziskezelő rendszerek felépítése 3 fajta inpt: Lekérdezések az adatokra vonatkozó kérések Módosítások adatok módosítása Sémamódosítások az adatbázis szerkezetét lehet megváltoztatni Tárkezelő a kért információ beolvasása a tárolóhelyről Lekérdezés-feldolgozó a lekérdezéseket egyszerű tasítások sorozatává alakítja Tranzakciókezelő a tranzakciók hibátlan ftásának a biztosítása

Az adatbiztonság Integritási kényszerek Az integritási kényszerek azon szabályok, amelyeket az adatbázisnak rendszerint figyelembe kell vennie. (Pl.: az attribútm-értékek előírt határértékek között vannak; az objektmok közötti relációk nem lehetnek ellentétben egymással; hivatkozási integritás, stb.) Tranzakciók Minden, a felhasználó által meghatározott változtatás és újradefiniálás mindaddig ideiglenes, míg nincs ellenőrizve. Az adatbázis csak a tranzakció végével változtatható meg. Zárolás Naplózás

Adatbázis architektúrák Centralizált adatkezelés Egy számítógépen történik az adatok tárolása, feldolgozása Kliens-szerver adatbázis architektúrák A szerveren hozzáférési jogokkal karbantartási műveletek valósíthatók meg. Elosztott adatbázis rendszerek A logikailag egységes, fizikailag azonban különböző - egymással összekapcsolt - számítógép rendszereken megvalósított adatbázist osztott adatbázisnak nevezünk (a távolság nem számít). A feladatok megosztása a nagygép tehermentesítése céljából történik.

Adatmodellezés Az adatmodellezés segítséget nyújt a környező világ megértésében és leképezésében, a lényeges jellemzők kiemelésében. Az adatmodell az adatok és az azok közötti összefüggések leírására szolgál. A modell olyan mesterséges rendszer, amely felépítésében és viselkedésében megegyezik a vizsgált létező rendszerrel Adatmodellnek nevezzük az adatok strktúrájának (felépítésének) leírására szolgáló modelleket.

Egyed-tlajdonság-kapcsolat Az adatmodell a fenti három fogalom együttese Egyednek nevezzük az információs rendszert felépítő személyeket, tárgyakat, eseményeket Az egyedeket a tlajdonságaik jellemzik A tlajdonság egy érték, amelynek tlajdonságtípsa van. pl: név Géza ð tlajdonságtíps ð tlajdonság

Egyed-tlajdonság-kapcsolat A tlajdonság lehet: Ø Azonosító, mely minden egyednél különböző értéket vesz fel, az egyedek közt nem ismétlődhet pl: személyi szám (1 780520 2452) Ø Leíró tlajdonság, mely az egyed egy jellemzőjét írja le, több egyednél is előfordlhat pl: név (Szabó Géza) Ø Gyengén jellemző tlajdonság, mely az előzőhöz hasonló, de nem kötelező megadni (üres is lehet) pl: kedvenc sportága (atóverseny) Ø Kapcsoló tlajdonság, mely egyik egyedben leíró, a másikban azonosító fnkciót tölt be pl: születési hely (Debrecen)

Egyed-tlajdonság-kapcsolat Egy rendszerben az egyedek nem elszigetelten vannak jelen, hanem kapcsolatban állnak más egyedekkel és objektmokkal. A kapcsolatrendszer többszintű, bonyollt strktúra, melyben több rendszer is kapcsolatban állhat egymással. Az ETK (egyed- tlajdonság- kapcsolat) modellben két egyedtíps egyedei közötti viszonyt kapcsolatnak nevezzük

Kapcsolatok típsai egy-az-egyhez (1-1) egy egyedtíps egy egyedéhez egy másik egyedtíps csak egyetlen egyede kapcsolódhat és fordítva is igaz (osztály-osztályfőnök) egy-a-többhöz (1-N) egy egyedtíps egy egyedéhez egy másik egyedtíps több egyede is kapcsolódhat de fordítva nem igaz (osztály-tanló) több-a-többhöz (N-M) egy egyedtíps egy egyedéhez egy másik egyedtíps több egyede is kapcsolódhat de fordítva is igaz (osztály-tanár) Az adatbázis fogalma a kapcsolatok alapján: Az adatbázis véges számú egyedek, azok egyenként is véges számú tlajdonságainak és kapcsolatainak adatmodell szerinti szervezett együttese.

Egy példa Kapcsolatok Tlajdonságtípsok Emberek (Név, Szem.szám,Szakma) Tlajdonságértékek Kapcsolat előfordlás Kis József 1 33 Mérnök, közg. Nagy Irén 2 33 Tanló Kapcsolat előfordlások Atók(Rendszám,Típs) Kovács István 1 33 - ABC- 123 VW tlajdonos ató 1:N tlajdonos lakás N:M házastárs1 házastárs2 1:1 Egyedek Kapcsolat előfordlások Lakások (Cím, Hrsz) DEF- 456 GHJ- 789 Alfa Opel 1111 Bp. Báb Hrsz 12 1211 Bp. Vas Hrsz 23 1031 Bp. Gát Hrsz 45 Egyedhalmazok

Az egyed-kapcsolat modell (E-K) (Entity-Relationship) (SSADM Strctred System Analysis and Design Method alapok) Egyedhalmaz Az EK modell tlajdonságai Egyértékű minden egyednél egyetlen érték Többértékű Egyszerű Összetett Klcstlajdonság Alaptlajdonság név több értéket is felvehet (pl. egy anya gyerekei) nem bontható további tlajdonságokra további tlajdonságokra bontható (pl. lakcím = irszám + város + ) Az elemeket egyértelműen azonosító egyértékű tl. Létezik más tlajdonságoktól függetlenül Származtatott tlajdonság Egyéb tlajdonságokból előállított életkor=fv(szül.dat)

Az EK modell kapcsolatai 1 N A kapcsolatokat Név A kapcsolatoknak tlajdonságaik tl1 tl2 A kapcsolatban résztvevők száma alapján beszélünk a kapcsolat fokáról Unáris, vagy rekrzív Bináris, vagy két résztvevős Trináris: háromrésztvevős. jellel jelöljük. is vannak és típsk. Sz.számF Sz.számN 1 1 házasság Hrsz Cím Ir.sz Város Lakások Sz.szám N Lak.Tl M 1 Név Emberek Sz.szám Szakm Hrsz Atótl. N Atók Típs Rendszám Sz.szám Rendszám 21

Példák E-K modellre Lemezek- szoftverek számítógépes nyilvántartása A lemezeken különböző gyártótól származó szoftverek vannak A lemezeket kapacitás és a gyártó jellemzi. A szoftvereket nevük és előállítójk azonosítja. Egy lemezen több szoftver is lehet. Egy szoftver lehet többlemezes is. Adatok Lemezkód Lemezmárka Lemez kapacitás Szoftverkód Szoftvernév Gyártókód Gyártónév

Megoldás LemezKód Szoftverkód Szoftverkód Szoftvernév Lemez N Tartalom M Szoftver LemezKód L_Kapacitás L_Márka Szoftverkód N SZ_GY 1 Gyártókód A lemezeken különböző gyártótól származó szoftverek vannak A lemezeket kapacitás és a gyártó jellemzi. A szoftvereket nevük és előállítójk azonosítja. Egy lemezen több szoftver is lehet. Egy szoftver lehet többlemezes is. Adatok Lemezkód Lemezmárka Lemez kapacitás Szoftverkód Szoftvernév Gyártókód Gyártónév Gyártókód Gyártó Gyártónév

Példák E-K modellre DVD kölcsönző számítógépes nyilvántartása A lemezek a filmek a kölcsönzők és a kölcsönzések adatai A filmeket a lemezeket és a kölcsönzőket kód jellemzi. Lehet egy lemezen több film és egy film több lemezen is. Egy kölcsönző több lemezt kölcsönözhet. Egy lemez egy időben egy helyen lehet csak. Adatok Filmkód Filmcím Lemezkód Lemez ár Kölcsönző kód Kölcsönző név Kölcsönző cím Elvitel Visszahozatal

Megoldás FilmKód Lemezkód Lemezkód Lemezár FilmKód Filmek Filmcím Tartalom A lemezek a filmek a kölcsönzők és a kölcsönzések adatai A filmeket a lemezeket és a kölcsönzőket kód jellemzi. Lehet egy lemezen több film és egy film több lemezen is. Egy kölcsönző több lemezt kölcsönözhet. Egy lemez egy időben egy helyen lehet csak. Adatok Filmkód Filmcím Lemezkód Lemez ár Kölcsönző kód Kölcsönző név Kölcsönző cím Elvitel Visszahozatal N Elvitel vissza M Kölcs_név Lemezek N Kölcsönz 1 Kölcsönzők Kölcs_kód Kölcs_cím Lemezkód Kölcs_kód

Adatbázis-szerkezetek Adatbázisok kialakításánál olyan szerkezetet kell kialakítani, amelyben a leghatékonyabban dolgozhatjk fel az adatokat. A leggyakoribb adatszerkezetek: Hierarchiks Hálós Relációs

Hierarchiks adatbázismodell A hierarchiks modellen alapló adatbázisokban az adatokat aláfölérendeltségi viszonnyal meghatározott szerkezettel írjk le. Csak egy a többhöz (1:N) típsú kapcsolatok képezhetők le. Az adatok csak a tárolt hierarchiának megfelelő sorrendben érhetők el. Fastrktúrával szemléltethető. Iskola Tanlók Tanárok Dolgozók 9.évfolyam 10. évfolyam 11. évfolyam 12. évfolyam

Hálós adatbázismodell Az egyes adategységek közötti kapcsolat gráffal írható le. A gráfban csomópontok találhatók, melyeket élek kötnek össze. Két csomópont között akkor van kapcsolat, ha őket él köti össze. Egy csomópontból tetszőleges számú él indlhat, de egy él csak két csomópontot köthet össze. Ezzel a modellel egy a többhöz (1:N) és több a többhöz (N:M) kapcsolatok is leírhatók Csak a tárolt kapcsolatok mentén bejárható. Géza Zoltán Kati Tibi Orvos Könyvtár Ató

Relációs adatbázismodell Az adatok tárolása táblázatos formában, a táblázat soraiban és oszlopaiban valósl meg. Nincsenek előre meghatározott kapcsolatok, a kapcsolatok létrehozásához szükséges adatokat tároljk és használjk fel. A relációs adatmodell jellemzői: Egyszerűen értelmezhető, átlátható. Rgalmas, könnyen kezelhető. A relációk kezelése matematikai műveletekkel leírható. (Relációs algebra)

Relációs adatbázismodell A reláció egy adattábla,(táblázat), a soraiban tárolt adatokkal együtt. A reláció sorait rekordoknak, oszlopait attribútmoknak (tlajdonságtípsoknak), egy sor és egy oszlop metszéspontjában található adatot tartalmazó elemet mezőnek nevezzük. Tlajdonságtípsok Rekordok Azonosító Név Évfolyam Osztály 001 Kati 11 A 002 Tibi 12 B Mezők

Relációk (táblák) jellemzői A relációk rekordjaiban tároljk a logikailag összetartozó adatokat A relációban tárolt rekordok számát a reláció számosságának nevezzük. A relációk oszlopaiban (attribútmaiban) az azonos tlajdonságokra vonatkozó adatok jelennek meg. Egy tábla nem tartalmazhat két azonos nevű oszlopot. Az oszlopok (attribútmok) számát a reláció fokának nevezzük. Négyfokú reláció Számossága kettő Azonosító Név Évfolyam Osztály 001 Kati 11 A 002 Tibi 12 B

Relációk (táblák) jellemzői Egy relációra vonatkozó követelmények: Minden rekordja különböző Nem tartalmazhat két azonos attribútmot Minden rekord mezőszerkezete azonos A rekordok és attribútmok sorrendje tetszőleges lehet Azonosító Név Évfolyam Osztály 001 Kati 11 A 002 Tibi 12 B 003 Zoli 10 C

Relációs adatbázisok kezelése A relációkon végzett műveletek két csoportra oszthatók: 1. Adatkezelő műveletek Adatbevitel Törlés Adatmódosítás 2. Adatlekérdező műveletek A relációs algebra műveleteivel végezzük A lekérdezés eredményeként mindig egy újabb relációt kapnk, mely része az adatbázisnak.

A relációs algebra műveletei A műveletek két csoportra oszthatók aszerint, hogy egy, vagy több reláción hajthatók végre. Egy reláción végrehajtható (egyoperandsú) műveletek: Szelekció Projekció Kiterjesztés Csoportosítás

A relációs algebra műveletei Több reláción végrehajtható (többoperandsú) műveletek: Descartes-szorzat Összekapcsolás Unió Metszet Különbség

A szelekció (kiválasztás) művelet (egy reláción végzett művelet) A szelekció (kiválasztás) művelete egy relációból csak egy adott feltételnek megfelelő sorokat jeleníti meg az eredmény relációban. Az eredmény számossága 0 és N között lesz, az eredmény reláció számossága nem változik. A TANULO relációból a VAROS mező értéke = Siófok Kod Nev Varos Evf. Oszt. 001 Balázs Bdapest 12 a 002 Zoli Siófok 11 b 003 Kati Siófok 9 c 004 Mari Győr 11 b Kod Nev Varos Evf. Oszt. 002 Zoli Siófok 11 b 003 Kati Siófok 9 c

A projekció (vetítés) művelet (egy reláción végzett művelet) A művelet során egy reláció oszlopai közül csak bizonyosakat őrzünk meg az eredmény relációban. Az eredmény attribútmok (oszlopok) száma 1 és a műveletben résztvevő reláció attribútmai között változhat. Kod Nev Varos Evf. Oszt. 001 Balázs Érd 12 a 002 Zoli Siófok 11 b 003 Kati Siófok 9 c 004 Mari Győr 11 b Kod Nev Varos 001 Balázs Érd 002 Zoli Siófok 003 Kati Siófok 004 Mari Győr

Kiterjesztés (egy reláción végzett művelet) A lekérdezésben nem egyes konkrét mezőértékeket, hanem az azokból matematikai műveletekkel képzett eredményeket jelenítünk meg. Az eredmény relációban újabb mezőt képezünk a kiindló reláció mezőivel végzett műveletek eredményének megjelenítésére. Kod Nev Elmelet Gyakorlat 001 Balázs 20 12 002 Zoli 23 11 003 Kati 10 9 004 Mari 19 11 Kod Nev Elmelet Gyakorlat Osszpont 001 Balázs 20 12 32 002 Zoli 23 11 34 003 Kati 10 9 19 004 Mari 19 11 30

Csoportosítás (egy reláción végzett művelet) A relációk rekordjait valamely attribútmok alapján meghatározott csoportokba foglaljk, majd a csoportokhoz különböző függvényekkel meghatározott értéket rendelünk. (Pl: összeg, átlag, min, max, elemszám, szórás,) Kod Nev Evf. Oszt. Matekjegy 001 Balázs 12 a 2 002 Zoli 11 b 4 003 Kati 9 c 3 004 Feri 11 b 4 005 Mari 11 b 3 Kod Nev Evf. Oszt. Matekjegy Atlag 002 Zoli 11 b 4 004 Feri 11 b 4 3,66 005 Mari 11 b 3

Descartes-szorzat (két reláción végzett művelet) Két reláció sorait minden variációban egymás mellé teszi az eredmény relációban. Kod Nev Evf. Oszt. 001 Balázs 12 a 005 Mari 11 b TKod T01 T02 T05 Oszt. matek fizika kémia Kod Nev Evf. Oszt. TKod Oszt. 001 Balázs 12 a T01 matek 001 Balázs 12 a T02 fizika 001 Balázs 12 a T03 kémia 002 Mari 11 b T01 matek 002 Mari 11 b T02 fizika 002 Mari 11 b T03 kémia

Összekapcsolás (két reláción végzett művelet) Két relációt kapcsol össze egy-egy attribútmk alapján. Az eredmény relációba azok a rekordok kerülnek, amelyhez található adott feltételt kielégítő sor a második relációban. Kod Nev Hobbykod 001 Balázs 1 002 Mari 2 003 Misi 4 004 Dani 1 HobbyKod Tevekenyseg 1 Sport 2 Olvasás 3 Mozi Kod Nev Hobbykod HobbyKod Tevekenyseg 001 Balázs 1 1 Sport 002 Mari 2 2 Olvasás 004 Dani 1 1 Sport

Relációkon végezhető halmazműveletek A halmazműveleteket csak azonos szerkezetű relációk között lehet elvégezni. Azonos szerkezetű két reláció, ha oszlopaik száma és a tárolt adatok típsa megegyezik. UNIÓ: Az eredmény reláció tartalmazni fogja azokat a rekordokat, amelyek legalább az egyik relációban szerepelnek. Azonos rekordok az eredmény relációban csak egyszer szerepelnek.

Relációkon végezhető halmazműveletek METSZET Az eredmény reláció csak azokat a rekordokat tartalmazza, amely a két reláció mindegyikében szerepel. Ha a metszet reláció üres, akkor a műveletben szereplő relációkban nincsenek azonos rekordok. A relációk sorrendje felcserélhető

Relációkon végezhető halmazműveletek KÜLÖNBSÉG Az eredmény reláció csak azokat a sorokat tartalmazza, amelyek az első relációban megtalálhatók, de a másodikban nem. Csak két, azonos szerkezetű relációra végezhető el. A műveletben szereplő relációk sorrendje nem cserélhető fel.

Azonosítás - klcsokkal Klcs: egyértelműen azonosítja az egyedet az egyedhalmazon belül. Pl. Cím+Év a Film egyedhalmaznál Ha a klcs egyetlen attribútmból áll, akkor egyszerű klcs, egyébként összetett klcs. Egy reláció esetén megadható több klcs is, ezek közül azt, amire egy adatfeldolgozási feladat végrehajtásakor szükségünk van és felhasználjk, elsődleges klcsnak mondjk. Az elsődleges klcson kívül minden egyéb klcsot másodlagos klcsnak nevezünk Idegen klcs: egy reláció attribtma(i), amely(ek) egy másik relációban elsődleges klcs(ok).

Egyedhalmazok a relációs modellben Az átírás szabályai 1. Tábla név = az egyedhalmaz neve 2. A tábla attribútmai = tlajdonság nevek 3. Az oszlopok értékkészlete = a tlajdonság értékkészlete 4. Tábla sorok = egyedhalmaz elemek 5. Probléma a többértékű tlajdonságok kezelése Minden tlajdonságértéket új sorba írnk, azonos atomi értékekkel Nagyné Anya Gyerek Nagyné 6. Ha nincs többértékű, akkor marad a klcs, egyébként többelemű Nagy Ede Nagy Éva Emberek Atók Lakások Sz.szám Név Szakma Rendszám Típs Hrsz. Cím Speciális adatértékek NULL Alapértelmezett

Kapcsolatok ábrázolása Az egyik reláció bővítése a másik előfordlását azonosító oszlopokkal. (Idegen klcs) 1:1 esetén bármelyik táblázatba a másik elsődleges klcsa 1:N esetén csak az egyikbe (N oldal) a másik elsődleges klcsa N:M esetén új tábla az elsődleges klcsokkal és a kapcsolatot jellemző tlajdonságokkal. Atók Rendszám Típs Tlaj 1:N Emberek Sz.szám Lakás tlajdonosok 1:1 Sz.szám Hrsz Lakások N:M 1:1 Hrsz Cím Név 1:1 1:1 1:N Házastársak Férj Szakma Sz.szám Feleség Szakma

Példák E-K modell átírására Lemezek- szoftverek számítógépes nyilvántartása LemezKód Szoftverkód Szoftverkód Szoftvernév Lemez N Tartalom M Szoftver 1 LemezKód L_Kapacitás L_Márka Szoftverkód SZ_GY N Gyártókód Gyártó Gyártókód Gyártónév

Megoldás Lemez Lemezkód L_márka L_kapacitás Tartalom 1:1 1:1 Lemezkód Szoftverkód Szoftver Szoftverkód Szoftvernév N:M 1:1 SZGY Szoftverkód Gyártó_kód 1:N 1:1 Gyártó Gyártó_kód Gyártó_név 49

Példák E-K modell átírására DVD kölcsönző számítógépes nyilvántartása FilmKód Lemzkód Lemezkód Lemezár FilmKód Filmek N Filmcím Tartalom Elvitel vissza M Lemezek N Kölcsönz 1 Lemezkód Kölcs_kód Kölcsönzők Kölcs_név Kölcs_kód Kölcs_cím

Megoldás Filmek Filmkód Filmcím Tartalom 1:1 Filmkód Lemezkód 1:1 Lemezek Lemezkód Lemezár N:M 1:1 Kölcsönz 1:N Lemezkód Kölcs_kód Elvitel Vissza 1:1 Kölcsönzők Kölcs_kód Kölcs_név Kölcs_cím 51

Integritási kényszerek, redndanciák Integritási kényszer: Az elsődleges klcs megszorításai: Egyedi értékek Nem lehet benne NULL Az idegen klcs megszorításai hivatkozási feltétel Másik táblázat elsődleges klcsa, vagy NULL Az adatbázis-kezelő módosításkor felügyeli Visszatasítás, vagy továbbgyűrűző kaszkád frissítés, vagy NULL értékre állítás Redndancia: többszörös adattárolás Ugyanaz az adat ne szerepeljen több táblázatban (kivétel a kapcsolatokat jellemző idegen klcsok esete) Egy egyed ne szerepeljen a táblázat több sorában

Anomáliák Változtatási anomáliának nevezzük a - módosítási, - beírási, - törlési anomáliákat. Módosítási anomália: Egy attribútm értékének megváltozását több helyen kell kijavítani. Ekkor az adatbázis redndáns, azaz valamely tényt vagy a többi adatból levezethető mennyiséget ismételten (többszörösen) tárolnk az adatbázisban. Ez az adatbázis inkonzisztens állapotához vezethet. Beírási anomália: Új egyedelőfordlásra vonatkozó információ bevitele nem lehetséges hiányos adatok miatt. Ez információvesztést eredményez. Törlési anomália: Bizonyos adatok törlésével elvesznek olyan adatok (mivel csak egész sorokat tdnk törölni), amelyekre továbbra is szükség lenne. Ez is információvesztést eredményez.

Normalizálás Adatbázis ideális tlajdonságait ún. normálformákban rögzítjük. Az E/K modell relációkba való átírásakor ezek nem feltétlenül teljesülnek. Azt a folyamatot, amelynek során átalakítjk az adatbázist a kívánt normálformára, normalizálásnak nevezzük. Normalizálás lényege: Az adatbázis optimalizáltsága, azaz a változtatási anomáliák (pl. redndanciák) megszüntetése az adatbázisban. (A logikai adatbázis tervezés egyik fő célja.) A normalizálás célja a hibaforrást jelentő ún. anomáliák minimálisra csökkentése. A normalizációnak több szintje, típsa létezik.

Normálformák A relációs modellben alapvető szerepet játszanak az elsődleges klcsra épülő függések. A gyakorlatban az adatbázis kezelő rendszerek felépítése a normálformákon alapl. A normálformákat sorszámozni szokásos: 1NF (normálforma), 2NF, 3NF, 4NF, 5NF. Nem normalizált relációsémák nem léteznek. (Nem normálformájú táblázatokat a relációs adatbázis-kezelő rendszerek nem tdnak kezelni.) Minden relációséma megköveteli a legalább 1NF-t. A relációs modell legkarakterisztiksabb jellemzője a harmadik normálforma.

Fnkcionális függőség Az R relációs séma αìr és βìr β fnkcionálisan függ α-tól (α β), ha bármely két sorban α értékei egyeznek, akkor β értékei is egyezőek. Triviális fnkcionális függőség α β ha βí α (részhalmaz) Nem triviális FF, ha α β és $ b i Ïα, b i Î β (van független elem) Teljesen nem triviális FF, ha α β és! $ b i Îβ, melyre b i Îα (diszj.) Részleges FF, ha α β és γ β, ahol γ Ìα (kevesebbtől is függ) Teljes FF, ha! $ γìα, melyre γ β teljesül (ez a legkevesebb) Szétvághatóság α β α b i i=1, n Összevonhatóság α b i i=1, n α β ={b 1,...,b n } Reflexivitás ha βíα, akkor α β Bővítés ha α β, akkor (αu γ) β Tranzitivitás ha α β és β γ, akkor α γ α β Szem.szam 1 1 1 1 Név Nagy Lajos Nagy Lajos Nagy Lajos Nagy Lajos 27

Normál formák 1. normál formában (1NF) van a séma, ha a mezők függéseinek rendszerében létezik egy klcs, amelytől minden más mező függ, azaz minden mezője fnkcionálisan függ a klcsmező csoporttól. 2. normál formában (2NF) van a séma, ha teljesíti az első normál forma kritérimait és nincs benne részleges függés, azaz bármely nem klcs mező a teljes klcstól függ, de nem függ a klcs bármely részhalmazától. Példál: Mnkatársak(kód, végzettség, név) nem 2NF, mert kód név Felbontás: Mnkatársak(kód,név)+Diploma(kód, végzettség)

Normál formák 3. normál formában (3NF) van a séma, ha teljesíti a második normál forma kritérimait és nem áll fenn tranzitív függőség, azaz a nem klcs mezők nem függnek egymástól. A reláció második normál formában van. A reláció nem tartalmaz fnkcionális függőséget a nem elsődleges attribútmok között. Példál: Vizsga (diákkód, Dátm, Tanárkód, Tanárnév) nem 3NF, mert Tanárkód Tanárnév Felbontás: Vizsga(diákkód, Dátm, Tanárkód) Tanárok(Tanárkód, Tanárnév) A harmadik normál formáig mindenféleképpen érdemes normalizálni a relációkat. Ez a redndanciák nagy részét kiszűri. Azok az esetek, melyekben a negyedik illetve az ötödik normál formák alkalmazására van szükség, ritkábban fordlnak elő

Klcsok és indexelés Az indexeléssel meggyorsítjk a táblákban a keresést és a rendezést, a lekérdezéseket és a csoportosításokat, a frissítés gyanakkor az indexelés időigényével megnő. Az indexeléssel egy kiválasztott mező szerint logikailag rendezzük az adatbázist, de valójában minden rekord a helyén marad. A táblák elsődleges klcsa atomatiksan indexelt.

SQL Strctred Qery Langage strktrált lekérdezőnyelv a relációs algebrára épül kiterjed az adatkezelő tevékenységekre: adatdefiniáló (DDL) adatkezelő (DML) lekérdező (DQL) vezérlő (DCL)

SQL műveleti sorrend - objektmok, táblák létrehozása - adatok felvitele - adatok lekérdezése - adatok módosítása - szerkezetek módosítása - működési környezet beállítása Termék Termék kód név ár dátm 1233 Alma 23 98.V.3 1253 Dió 783 01.I.8 4433 Mogyi 97.II.11 1233 Alma 23 98.V.3 6233 Bab 79 75.X.2

SQL- Utasítások csoportosítása Definíció: DDL: - objektm létrehozás CREATE - objektm megszüntetés DROP - objektm módosítás ALTER Módosítás: DML: - rekord felvitel INSERT - rekord törlés DELETE - rekord módosítás UPDATE Lekérdezés: DQL: - lekérdezés SELECT Vezérlés DCL: - védelem GRANT,.. - tranzakció kezelés COMMIT,..

Definíció Objektm létrehozása: CREATE TABLE tnév (mnev1 tips1 intfelt1,,intfelt)... ; CHAR(n) NUMBER(n,m) DATE PRIMARY KEY NOT NULL UNIQUE CHECK felt REFERENCING tabla CREATE TABLE AUTO (RSZ CHAR(6) PRIMARY KEY, AR NUMBER(9) NOT NULL, IDO DATE);

Definíció Objektm megszüntetése: DROP TABLE tnév ; Objektm séma módosítás: ALTER TABLE tnév ADD MODIFY (mnev tip intfelt intfelt);

Módosítás Rekord felvitele: INSERT INTO tabla VALUES (mezo=ertek, ); Az érték lehet NULL is. Nem maradhat ki mező. Fontos a mezősorrend INSERT INTO AUTO VALUES ( bj564,234, FIAT ); INSERT INTO AUTO VALUES ( bj564,234,null); INSERT INTO AUTO VALUES (RSZ= bj564,...);

Módosítás Rekord törlése: DELETE FROM tabla WHERE feltétel; A feltételnek eleget tevő rekordok törlődnek Ha elmarad a WHERE tag, minden rekord törlődik DELETE FROM AUTO WHERE AR<1200000; Rekord módosítása: UPDATE tabla SET mezo= érték,... WHERE feltétel; A feltételnek eleget tevő rekordok módoslnak Ha elmarad a WHERE tag, minden rekord módosl UPDATE AUTO SET AR = AR * 1.2 WHERE AR<1200000;

Lekérdezés Adatok lekérdezése: SELECT mezőlista FROM tabla1,tabla2,... JOIN... WHERE feltétel GROUP BY cskif csoportosítás HAVING feltétel ha a csoportra további megszorítást akarnk adni ORDER BY rendezés Pl: SELECT kód, név, jegy FROM hallgató, tanlt tárgyak WHERE tanszék= menedzser GROUP BY név HAVING szülév<1984;

SELECT - projekció SELECT mlista FROM tábla; AUTÓ rsz tips szín r1 Fiat zöld r2 Opel kék r6 Mazda piros r4 Skoda kék r9 Szki piros projekció kijelölt mezõk = tips, rsz tips Fiat Opel Mazda Skoda Szki szín zöld kék piros kék piros SELECT TIPUS, SZIN FROM AUTO; Az mlista helyén * áll, ha minden mező kell

SELECT - szelekció SELECT mlsita FROM tábla WHERE feltétel; AUTÓ rsz tips szín r1 Fiat zöld r2 Opel kék r6 Mazda piros r4 Skoda kék r9 Szki piros rsz tips szín r2 Opel kék r4 Skoda kék r6 Mazda piros szelekció feltétel: szín = 'piros' VAGY tips = 'Mazda' SELECT * FROM AUTO WHERE SZIN = KÉK OR TIPUS = MAZDA ;

Műveletek kombinálása AUTÓ rsz tips szín r1 Fiat zöld r2 Opel kék r6 Mazda piros r4 Skoda kék r9 Szki piros szelekció feltétel: szín='piros' VAGY szín='kék' projekció kijelölt mezõk = rsz rsz r2 r6 r4 r9 SELECT RSZ FROM AUTO WHERE SZIN = PIROS OR SZIN= KEK ;

SELECT - join SELECT mlista FROM tabla1, tabla2,.. WHERE feltétel; AUTÓ rsz tlaj r1 3 r4 1 r6 4 összekapcsolás rsz tlaj id név r1 r4 r6 3 1 4 1 1 1 Laci Laci Laci r1 r4 3 1 2 2 Ágota Ágota Ha a feltétel elmarad Descartes szorzatot kapnk EMBER id név 1 Laci 2 Ágota 3 János 4 Zoltán r6 r1 r4 r6 r1 r4 r6 4 3 1 4 3 1 4 2 Ágota 3 János 3 János 3 János 4 Zoltán 4 Zoltán 4 Zoltán Kettőnél több tábla is összekapcsolható

Szelekciós join SELECT * FROM AUTO, EMBER WHERE TULAJ = IGSZ; Ha több táblában is azonos elnevezésű mező van, akkor a kibővített mezőnevet használjk: tábla.mező SELECT * FROM AUTO, EMBER WHERE AUTO.TULAJ = EMBER.IGSZ; Ha hosszú a táblanév alias nevet használhatnk: tábla alias SELECT * FROM AUTO A, EMBER E WHERE A.TULAJ = E.IGSZ;

SELECT - kifejezés megadása SELECT kifejezés (mezőnév,... FROM ; Az előállító kifejezés AUTÓ rsz tips ár kiterjesztés rsz tips ár r1 Fiat 1200 új mezõ: ár/100 r1 Fiat 1200 r2 Opel 930 r2 Opel 930 r6 Mazda 870 r6 Mazda 870 r4 Skoda 1500 r4 Skoda 1500 r9 Szki 1400 r9 Szki 1400 ár/100 12 9.3 8.7 15 14 SELECT AR/100 UJAR FROM AUTO;

SELECT - aggregáció megadása SELECT aggregációs-lista FROM tábla; SUM(mez.kif) COUNT(mez.kif) MIN(mez.kif) AVG(mez.kif) MAX(mez.kif) AUTÓ rsz tips ár r1 Fiat 1200 r2 Opel 930 r6 Mazda 870 r4 Skoda 1500 r9 Szki 1400 r7 Opel 2570 r11 Fiat 850 r8 Opel 1000 csoportképzés kifejezés: Cont() 8 kiírandó: COUNT() SELECT COUNT(*) FROM AUTO;

SELECT - aggregáció és csoportképzés megadása SELECT aggregációs-lista FROM tábla GROUP BY csopképzkif; SELECT TIPUS, AVG(AR) FROM AUTO GROUP BY TIPUS; AUTÓ rsz tips ár r1 Fiat 1200 r2 Opel 930 r6 Mazda 870 r4 Skoda 1500 r9 Szki 1400 r7 Opel 2570 r11 Fiat 850 r8 Opel 1000 csoportképzés kifejezés: tips kiírandó: tips, AVG(ár) tips Fiat AVG(ár) 1025 Opel Mazda 1500 870 Skoda 1500 Szki 1400

SELECT - eredmény rekordok rendezése SELECT mlista FROM tábla ORDER BY mezo1 mod1, mezo2...; ASC DESC A második mező szerinti szempont csak az első egyezősége esetén lényeges SELECT RSZ, TIPUS, AR FROM AUTO ORDER BY AR DESC, TIPUS; Lehet sorszámmal is hivatkozni a mezőkre SELECT RSZ, TIPUS, AR FROM AUTO ORDER BY 3 DESC, 2;

A keresési feltételben megadható összehasonlító operátorok nmeriks, karakteres és dátm típsú adatokra halmazokra

A keresési feltételben szereplő szöveges minta megadása A LIKE operátort karakteres mezők összehasonlítására alkalmazhatjk. Két speciális karakter adható meg: % jel tetszőleges hosszúságú karakter sorozatot helyettesít, _ aláhúzás karakter pedig egy tetszőleges karaktert. Példál:

Logikai operátorok Az összehasonlító operátorok precedenciája (végrehajtási sorrendje) csökkenő sorrendben:

Példák BOROK(kod, nev, gyarto, fajta, ar) VEVO(vkod, nev, cim) RENDELES(vevo, bor, mennyiseg,datm) 1. azon vevők, akik rendeltek Bikavért SELECT V.NEV FROM VEVO V, RENDELES R, BOROK B WHERE V.VKOD = R.VEVO AND R.BOR = B.KOD AND B.NEV LIKE BIKAVER% ; 2. Melyik gyártó termel 5-nél több vörös bort SELECT GYARTO FROM BOROK WHERE FAJTA = VOROS GROUP BY GYARTO HAVING COUNT(*) > 5;