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



Hasonló dokumentumok
Adatbázis-kezelés. alapfogalmak

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

Adatbázis rendszerek. dr. Siki Zoltán

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

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

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

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

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

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

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

Bevezetés: az SQL-be

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

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

Adatigények. Koncepcionális séma (magas szintű modell) Logikai séma (alacsony szintű modell) Belső séma (fizikai szerkezet, hozzáférési módok)

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

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

Adatmodellezés. 1. Fogalmi modell

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

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, adatbázis-kezelő

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

Adatbázisok* tulajdonságai

BEVEZETÉS Az objektum fogalma

Az adatok a vállalat kulcsfontosságú erőforrásai. Az információs rendszer adatai kezelésének két alapvető változata:

Adatbázisok - 1. előadás

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

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

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

Adatbáziskezelés 1 / 12

Az adatbázisrendszerek világa

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

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

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

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

9.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

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

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

Adatbázis használat I. 5. gyakorlat

Csima Judit szeptember 6.

Gazdasági informatika II (SZIE GTK GVAM 1. évfolyam) 2009/2010. tanév 2. félév

1. előadás Alapfogalmak Modellezés, a Bachman-féle fogalomrendszer, adatmodell,

Adatbázisok elmélete

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

Adatbázis-kezelés. Dr. Fülep Dávid. SELECT id FROM tantargy WHERE intezmeny = sze ORDER BY hasznossag LIMIT 1 NGB_SZ_003_9

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

Adatbázis-kezelés. Fülep Dávid. SELECT id FROM eloadas WHERE intezmeny = sze ORDER BY unalomfaktor LIMIT 1 NGB_SZ_003_9

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Gazdasági folyamatok térbeli elemzése. 5. elıadás

Adatmodellek. 2. rész

Adatbáziskezelés alapjai ADATBÁZISKEKZELÉS 1

Adatbázis-kezelés. Építész Informatika 1. Fejér Tamás október 20.

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

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. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

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

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

Adatbázismodellek. 1. ábra Hierarchikus modell

Adatbázis rendszerek. 4. előadás Redundancia, normalizálás

ADATBÁZISOK, 2017 ősz

A könyv tartalomjegyzéke

ADATBÁZIS-KEZELÉS Demetrovics Katalin

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben

Adatba zis é s szoftvérféjlészté s (wéb-programoza s)

ADATBÁZISOK, 2018 ősz

Beszerzési logisztika támogatása az optimális beszállító kiválasztása révén

Adatbázisok I Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

Adatbázisrendszerek Radványi, Tibor

Adatbázis-kezelés - Relációs adatbázisok adatszerkezetének tervezése, megvalósítása

Bevezetés: Relációs adatmodell

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

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

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

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

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

Ajánlott irodalom. Adatbázisok I.

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

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

Adatbázis rendszerek Definíciók:

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

Bevezetés: Relációs adatmodell

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

Nyilvántartási Rendszer

Adatbázis-kezelés alapjai 1. Ea: Infó Mátrix. Lehet, nem lehet

ADATBÁZIS RENDSZEREK. Adatbázisok története, alapfogalmak, adatmodellek. Krausz Nikol, Medve András, Molnár Bence

30 MB INFORMATIKAI PROJEKTELLENŐR ADATBÁZISOK MEGVALÓSÍTÁSA (ADATBÁZISOK, ADATBÁZISKEZELŐK, ADATBÁZISOK FELÉPÍTÉSE, ADATBÁZISOK TERVEZÉSE)

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

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

A relációs adatmodell

ADATBÁZISRENDSZEREK. Dr. Radványi Tibor. Készült a TÁMOP /1/A támogatásával.

Az adatbáziskezelés alapjai

Adatbázis alapjai. Készítette: Siki Zoltán

A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak

Adatbázisrendszerek BEVEZETÉS. A valós világban vannak dolgok, amelyek viselkednek, hatnak egymásra, kapcsolatban vannak. Ezek rendszert alkotnak.

Táblák és a közöttük / az adatmezők közötti kapcsolatok grafikusan megjelenítve. 7 tábla, adatmezőik, bennük elsődleges és külső kulcsok

ADATBÁZISOK ADATBÁZIS-KEZELŐ RENDSZEREK. Debrenti Attila

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

A TANTÁRGY ADATLAPJA

Java és web programozás

Informatikus informatikus Térinformatikus Informatikus É 1/9

Átírás:

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 Bevezetés Adatbázisok csoportosítása Tény-adatbázis Meghatározott formában tárolt adatokat tartalmaz Adatok között kapcsolat áll fenn Dokumentum típusú adatbázist Szöveges információk vagy digitálisan archivált adatok halmaza Adatok között nincsen kapcsolat Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 2 / 19

Bevezetés Adatbázis-kezelő rendszerek előnyei az adatok strukturált "szabványos" tárolása az adatok közötti komplex kapcsolatok ábrázolása egyszerű használat eltérő forrásokból származó adatok összekapcsolhatósága adatbevitel ellenőrzése, adateredet naplózása felhasználói programoktól való függetlenség fejlesztői nyelvektől való függetlenség felhasználói jogosultság, hozzáférés-kezelés konkurens hozzáférés erőforrásokhoz való konfigurálhatóság szabványos felhasználói, lekérdező felületek adatvédelem, titkosság redundancia mentes tárolás adatbázis-konzisztencia biztosítása külső rendszerekkel való kapcsolattartás hibakezelés-, hibajavítás; Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 3 / 19

Hátrányok, fontosabb fogalmak Bevezetés Az adatbázis-kezelő rendszerek hátrányai Adatkezelés speciális szakértelmet kíván Megbízható rendszerek általában relatíve drágák A végfelhasználó a hagyományostól eltérő adatkezelésre kényszerül Adatokkal való visszaélés veszélye fokozottan jelentkezik Adatok könnyen megsérülhetnek (megbízható adatkezelési, archiválási rendszer szükséges) Adatbázisokkal kapcsolatos fontosabb fogalmak DDL - Data Definition Language Adatszerkezetet leró nyelv SDL - Storage Description Language Fizikai szerkezetet megvalósító nyelv DML - Data Manipulation Language Adatok visszakeresését és módósítását támogató nyelv DBML - Data Base Management System Adat leíró és adatkezelő nyelvet magába foglaló rendszer SQL (Structured Query Language) Szabványos adatokat lekérdező nyelv Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 4 / 19

Kapcsolatok, DB modellek Objektumok közötti kapcsolatok, DB modell szintjei A két elem független, közöttük lévő kapcsolatokról nem tárolunk információt A két elem között kölcsönösen egyértelmű kapcsolat áll fenn. 1:1 Elemek egyértelmű összekapcsolása minden modellben kezelhető. Az egyik irányban egyértelmű, a másik irányban többértelmű a kapcsolat. 1:N A kapcsolatok egymásra épülnek egyszerű hierarchikus kapcsolat alakul ki. Minden modellben használható. Minkét irányban többértelmű kapcsolat. M:N Csak hálós és relációs modellek tudják kezelni. Adatbázis modell szintjei Külső szint Középső (koncepcionális) szint Belső (fizikai) Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 5 / 19

Adatbázis modellek Adatbáziskezelés Kapcsolatok, DB modellek Adatbázis modellek Hierarchikus adatbázis modell Hálózatos adatbázis modell Relációs adatbázis modell Objektum-relációs modell SQL (Structured Query Language) (Szabványos lekérdező nyelv) Szükséges egy olyan nyelv, amely több rendszerben is használható Lehetséges elemek szintaktikai elemek objektumok utasítások kifejezések és műveletek NULL érték katalógus adatbázisok eljárásjellegű elemi Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 6 / 19

Fontosabb SQL utasítások Kapcsolatok, DB modellek Adatdefiníciós utasítások CREATE ALTER DROP Adatkezelési utasítások SELECT INSERT UPDATE DELETE Adatbiztonsági utasítások GRANT REVOKE Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 7 / 19

Relációs adatbázis Adatbáziskezelés Relációs adatbázis Codd (1970) adatmodell kidolgozása Előnyök Egyszerűen értelmezhető adatszerkezet (Felhasználó - Fejlesztő) Más meglévő nem relációs adatbázispól könnyen átvihetőek az adatok relációs adatbázisba Tervezése nem különbözik a többi adatbázis tervezési elveitől Relációk és alapfogalmak A reláció egy táblázatként értelmezhető A táblázatok tartalmazzák az adatokat A relációs adatbázis = relációk összessége Oszlopok elnevezésének egyedinek kell lenni Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 8 / 19

Relációs adatbázis Elterjedt relációs adatbázis-kezelő rendszerek Kereskedelmi Oracle IBM DB2 MS SQL Server Informix Nyílt forráskóddal rendelkezők MySQL SQLite PostgreSQL Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 9 / 19

Adattábla (példa) Adatbáziskezelés Relációs adatbázis Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 10 / 19

Adatbázistervezés Adatbáziskezelés Adatbázistervezés Lépései Rendszer/Feladat elemzése Tárolandó adatok kiválasztása Adatok közötti kapcsolat(ok) meghatározása Adatbázissal szemben támasztott követemények felmérése (Conceptual schema - Fogalmi séma) Rendszer megtervezése (nem csak az adatbázis) Logikai adatmodell megtervezése Fizikai megvalósítás HW/SW függő Logikai adatmodell implementálása Adatokkal való feltöltés Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 11 / 19

Tervezéssel kapcsolatos fogalmak Adatbázistervezés Funkcionális kapcsolat Egy vagy több adat konkrét értékéből más adatok egyértelműen következik Neptun kód Név Személyi szám Név Igazolvány szám Név Neptun kód Személyi szám Személyi szám Neptun kód Fordítva nem feltétlenül igaz Kölcsönös függőség: Személyi szám Neptun kód Egy adatot több attribútum is definiálhat Szak, Átlag Ösztöndíj Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 12 / 19

Tervezéssel kapcsolatos fogalmak Adatbázistervezés Funkcionális kapcsolat Teljes funkcionális függőség A kapcsolat bal oldalán nem szerepel felesleges adat Szak, Átlag Ösztöndíj (teljes) Neptun kód, Szak, Átlag Ösztöndíj (nem teljes) Fontos a funkcionális kapcsolat HELYES felismerése HELYTELEN Funkcionális kapcsolat esetében nem kapunk helyes/hatékony működést Matematikai megadás: relacio_neve=({attributum(ok)},{funkcionalis_fuggosegek}) Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 13 / 19

Tervezéssel kapcsolatos fogalmak Adatbázistervezés Többértékű függőség Nem minden kapcsolat fejez ki egyértelmű függőséget Neptun kód Név (Egy hallgató több szakon is tanulhat) Ha valami nem írható le funkcionális függőséggel akkor szabad csak használni. Reláció kulcsa Egyértelműen azonosítja a reláció egy sorát Kulccsal szemben támasztott feltételek: Olyan atribiutum(ok) melyek egy sort azonosítanak (egyértelműség) Nincsen(ek) felesleges atribiutum(ok) a kulcsban (egyetlen részhalmaza sem alkot kulcsot) attribútum(ok) értéke nem lehet definiálatlan (NULL) érték Összetett kulcsok Több attributummal állítható össze a kulcs vizsga=({neptun_kód, tantárgy, dátum, vizsgajegy}) Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 14 / 19

Tervezéssel kapcsolatos fogalmak Adatbázistervezés Redundancia Valamely információ többszörösen van eltárolva Valamely információ más tényekből meghatározható Redundancia veszélyei/hátrányai Növekvő helyfoglalás Növeli az inkonzisztencia veszélyét (Inkonzisztens DB egymásnak ellentmondó tényeket tartalmaz) Bonyolult adatfrissítés/karbantartás Logikai tervezésnél kell kiküszöbölni Tantárgy neve, Oktató, Heti óraszám, Féléves óraszám Felesleges a "Féléves óraszám" eltárolása Gyorsítás érdekében szoktak redundanciát használni Fizikai tervezés Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 15 / 19

Adatbázistervezés Reláció normál alakja (Normal Form) Feladat: redundancia megszüntetése Normál formák egymásra épülnek Elsődleges attribútum: Legalább egy reláció kulcsban szerepelnek 1NF - Első normál forma Minden attribútuma egyszerű, nem összetett adat órarend=({tantárgy, időpont, terem, terem_kapacitasa}) 2NF - Második normál forma Nem tartalmazhat tényeket a reláció kulcs egy részére vonatkozóan Reláció minden nem elsődleges attribútuma teljes funkcionális függőségben van az összes reláció kulccsal órarend=({tantárgy, időpont, terem}) termek=({terem, terem_kapacitasa}) Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 16 / 19

Adatbázistervezés Reláció normál alakja (Normal Form) 3NF - Harmadik normál forma Probléma: A második normál forma ellenére lehetnek ismétlődő tények órarend=({tantárgy kód, oktató neptun kód, oktató neve}) (megoldás) órarend=({tantárgy kód, oktató neptun kód}) oktatók=({oktató neptun kód, oktató neve}) Boyce/Codd normál forma (BCNF) A 3NF szigorítása, a redundanciák kiküszöbölése érdekében Feltételei: A reláció 3NF-ban van Elsődleges attribútum(ok) teljes funkcionális függőségben van azokkal a kulcsokkal, melyeknek nem része Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 17 / 19

Adatbázistervezés Reláció normál alakja (Normal Form) 4NF - Negyedik normál forma Probléma: A Boyce/Codd normál forma (BCNF) ellenére is lehetnek ismétlődő tények Feltételei: A reláció 3NF-ban van A többértelmű függőségben (X Y ) X és Y megtalálható atributum hallg_evf_koll=({hallgató, évfolyamtárs, kollégium szoba}) (megoldás) evfolyamtars=(hallgató, évfolyamtárs) kollegiumszoba=(hallgató, kollégium szoba) Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 18 / 19

Adatbázistervezés Reláció normál alakja (Normal Form) 5NF - Ötödik normál forma Probléma: A 4NF ellenére is lehetnek ismétlődő tények (4NF-ban) tanár_óra=({tantárgy kód, oktató neptun kód}) oktató_hely=({oktató neptun kód, kampus}) óra_hely=({tantárgy kód, kampus}) (megoldás) órarend=(tantárgy kód, kampus, oktató neptun kód) oktatók=(oktató neptun kód, oktató neve) Fodor A. (Pannon Egyetem) Programozás 2010. április 22. 19 / 19