Adatbázisok / SQL v 2.1 Viczián Gergely (eredeti: Török János 2004)

Slides:



Advertisements
Hasonló előadás
Tananyag: konzultáció
Advertisements

2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Anyagadatbank c. tárgy gyakorlat
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
Elmaradás.  0 Számjegy. Ebben a pozícióban egyetlen számjegyet kell megadnia.  9 Számjegy. Ebben a pozícióban egyetlen számjegyet lehet megadni, nem.
Microsoft Access Lekérdezések.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
1 Informatikai Szakképzési Portál Adatbázis kezelés DCL – Adatvezérlő nyelv.
Delphi programozás alapjai
SQL Structured Query Language
Adatbázis kezelés. Hierarchikus modell Legrégebbi modell, ma már nem használatos. Az adatokat fákban tároljuk, ahol minden pont a szegmens adatokat, és.
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
– SQL 2: Adatok kezelése – Tarcsi Ádám, január 30. Adatbázis gyakorlat.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
megismerése, mintaadatbázis létrehozása
SQL – DQL (Data Query Language ) adat lekérdezések
Adatbázis rendszerek II.
Adatbázisok-SQL Dr. Viczián Gergely (Dr. Török János V2.0)
Készítette: Sárközi Anikó
Adatbázis-kezelés ACCESS program:
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 5. Nézettáblák létrehozása, módosítása és törlése.
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
ADATBÁZISOK
ADATBÁZISOK
ADATBÁZISOK
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
Adatbázis kezelés SQL. Történeti áttekintés 1976IBM:SEQUEL,SQL 1976IBM:SEQUEL,SQL 1983ORACLE 1983ORACLE 1984INFORMIX 1984INFORMIX 1986SQL – szabvány :
Nézettáblák létrehozása, módosítása és törlése
- adatbázisséma definiálása (DDL) Data Definition Languages, - adatok aktualizálása (DML),Data Maniputaion Language - lekérdezési lehetőségek (DML) Data.
SQL. SQL = Structured Query Language (= struktúrált lekérdező nyelv). A relációs adatbázis-kezelés szabványos nyelve. Nem algoritmikus nyelv, de algoritmikus.
SQL.
Az SQL nyelv alapjai.
DML. Új rekord beszúrása: INSERT INTO tábla (oszlop1,oszlop2,…) VALUES (érték1,érték2,…); Rekord módosítása: UPDATE tábla SET oszlop = érték WHERE feltétel;
1 Informatikai Szakképzési Portál Adatbázis kezelés Alapfogalmak.
DDL – Adatdefiníciós nyelv
Adatbázis adminisztrátori ismeretek
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!
Adatbázis-kezelés SQL-lel. SQL SQL = Structured Query Language – Strukturált Lekérdezőnyelv Relációs adatbázis-kezelők lekérdezési nyelve. Alapjait az.
Adatbázis-kezelés SQL-lel
Felhasználók és jogosultságok
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Készítette: Tóth Ervin
Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data.
SQL-Structured Query Language. Parancs(utasítás) csoportok CREATE - táblák létrehozása ALTER – táblák módosítása DROP – táblák törlése DDL –Data Definition.
SQL.
Adatbázis rendszerek I Relációs adatmodell strukturális része Általános Informatikai Tsz. Dr. Kovács László.
1 Sramó András Adatbázis-technológia V. előadás Adatbázis-technológia 5. előadás Az SQL.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
SQL SELECT parancsok Kottyán László. A bemutató mintatáblái.
Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai
Ma az un. Relációs adatmodelleket használjuk.
5. gyakorlat Fleiner Rita.
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
SQL történelem 1970 Edgar F. Codd (IBM) cikke 12 szabály a relációs adatmodellekre 1979 első kereskedelmi forgalmazású relációs adatbáziskezelő 1986 az.
SQL. SQL jellemzői Nem algoritmikus (nem tartalmaz algoritmikus szerkezeteket: ciklus, eljárás, elágazás) Nem rekurzív (önmagát nem hívhatja) Halmazorientált.
Adatbázis-kezelés 3-4. Adatok lekérdezése utasítás általános formája SELECT [ALL/DISTINCT] {*/, …, } FROM [ ], …, [ ] [WHERE GROUP BY, …, HAVING ORDER.
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Adatbázis-kezelés 1-2. adatbázis-kezelő rendszer 1.új adatbázisokat hozhassanak (adat definició 2.lekérdezések és módosítások (adat manipuláció) 3.Támogassa.
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
Készítette: Kiss András
Adatbázisok SQL.
Kovács Gergely Péter Bevezetés
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Előadás másolata:

Adatbázisok / SQL v 2.1 Viczián Gergely (eredeti: Török János 2004)

Útiterv az első 45 percre  Egy kis adatbázis történelem  Relációs Adatbázis-kezelők  Mi az SQL?  SQL alapjai  parancsok  lekérdezés  lekérdezési terv  variációk (Lotus, Access)  Közkívánatra: XML  Adatbiztonság

Az adatbázisok története  „data base” 1963 (~data bank)  Charles Bachman – szekv. feldolg. felváltása  1970 E. F. Codd 12 szabálya relációs model  1978 CP/M →MsDOS (Vulcan → dBASE)  1979 Oracle 2 (RDBMS)  1981 Tate és Lashlee dBASE-II PC assembly  1984 dBASE-III (89 / 92 / 99 modosítások)  1986 SQL ANSI és ISO szabvány lesz  XML ~ adatbázis

Relációs adatbáziskezelők „RDBMS”  Edgar Frank „Tedd” Codd szabályai 0. Reláció kizárólag csak kezelésre 1. Az egységes megjelenésű információ szabálya (tábla) 2. Garantált lokalizálhatóság szabálya (tábla, oszlop, sor/kulcs) 3. A NULL értékek egységes kezelése (mező lehessen "üres") 4. Dinamikus szerkezetleírás (maga a séma is adatbázis) 5. A teljeskörű „adatnyelv” szabálya (lineáris, interaktív, adat: SQL) 6. A nézetek frissítésének szabálya (valósidejű manipulálás: nincs) 7. Magas szintű beszúrás, frissítés és törlés (sok adat egyidejűleg) 8. Fizikai szintű adatfüggetlenség 9. Logikai szintű adatfüggetlenség (nehéz megvalósítani) 10. Jóság (integritás) függetlenség (adatkorlát, jóság kezelése) 11. Elosztástól való függetlenség (változások, lekérdezések) 12. Megkerülhetetlenség szabálya (alacsony szintű megkerülés)

dBASE USE bertabla REPLACE ALL fizetes WITH fizetes * 1.1 FOR vezeto > 0 LIST ALL nev, beosztas, fizetes TO PRINT

Relációs adatbázis  Relációs adatmodell (Codd szabályok) alapján létrehozott adatbázis részei:  Felhasználók, jogosultsági rendszerek  Táblák  Nézetek  Indexek (bináris fa)  Megszorítások  Eljárások, függvények  Triggerek Azonos szerkezetű rekordok: táblázat minden oszlop rögzített típusú alap, vagy null érték Automatikus programok változások véglegesítése üres mezők kitöltése integritás biztosítása indexek létrehozása dialektus, más programnyelv

SQL  Structured Query Language  Általános leíró nyelv adatbázis elérésére, módosítására  Relációs adatbázis kezelők elterjedt nyelve  ANSI szabvány…  Sokféle programtámogatás:  Visual Basic (MsSQL)  Java  PL/SQL  ACCESS  php (MySQL) A dBASE nem SQL!

Az SQL alapjai 1.  Lekérdezés  (CREATE VIEW) SELECT  Adatmanipuláció  UPDATE  DELETE  INSERT INTO  Adatleírás  CREATE TABLE  ALTER TABLE  DROP TABLE  CREATE INDEX  DROP INDEX Az olvashatóság miatt írjuk nagybetűvel a parancsokat COMMIT/ROLLBACK

AZ SQL alapjai 2.  Lekérdezés SELECT [any/distinct all/distinct/top/distinctrow] { oszlopok } [AS alias1, alias2,…] FROM táblakifejezés [,…] [IN külső adatbázis] [INNER/LEFT/RIGHT JOIN …] [WHERE ….] [GROUP BY …] [HAVING…] [ORDER BY…] [WITH OWNERACCESS OPTION] nincs/van ismétlődés van/nincs ismétlődés/első n/ nincs dupla sor Amire kíváncsiak vagyunk Megjelenített táblázat fejléccíme Lehet az oszlopok után is írni Táblázat/ok Csak ACCESS, a vizuális összekapcsolás miatt Szűrési feltétel Csoportosítás (összeg, átlag) Csoportosítás utáni szűrési feltétel Az eredmény rendezését adja meg

Példa SELECT Fokonyv_2K4.Sorsz, Fokonyv_2K4.Datum, Fokonyv_2K4.[Brutto(Tart)], Fokonyv_2K4.[Brutto(Kov)], Fokonyv_2K4.[KP/Bank], [Brutto(Tart)]-[Brutto(Kov)] AS akt FROM Fokonyv_2K4 WHERE (((Fokonyv_2K4.Datum)<=[vegnap]));

Összetettebb példa Összetettebb példa SELECT SQL_CALC_FOUND_ROWS base.actiroleID AS col0, actiID, actiName AS col1, actiState AS col3, wbseID, wbseName AS col4, flowID, flowName AS col6, actiPriority AS col8, atypAbr AS col9, actiID AS col10, IF(ISNULL(actiRealStart) OR actiRealStart=' ',actiPlannedStart,actiRealStart) AS col11, actiPlannedEnd AS col12, IF(ISNULL(actiPlannedEnd) OR actiPlannedEnd=' ','',IF((ISNULL(actiRealEnd) OR actiRealEnd=' ') AND actiPlannedEnd>=CURRENT_DATE,'',TO_DAYS(IF(ISNULL(actiRealEnd) OR actiRealEnd=' ',CURRENT_DATE,actiRealEnd))- TO_DAYS(actiPlannedEnd))) AS col13 FROM TQactirole as base left join TQacti AS acti on (actiID=base.actiroleActiID) left join TQwbse AS wbse on (wbseID=actiWbseID) left join TQflow AS flow on (wbseFlowID=flowID) left join TQatyp AS atyp on (atypID=actiATypID) WHERE actiWbseID>-1 and (flowFCatID 2) OR (3=4 AND actiState<>0)) GROUP BY actiID ORDER BY col12 asc LIMIT 0,30

SQL hátrányai...  Nem igazi relációs adatbázis modell  A szintaxis komplikált  Sokszor igen hosszú parancsok születnek, amelyek nehezen törhetők darabokra  A különböző implementációk kicsit eltérnek egymástól (pl. Oracle és Access)  Ékezetes problémák bizonyos megvalósításokban

Lekérdezési terv  A keresés végeredményét általában tovább analizáljuk  Lekérdezési terv  A kapott halmazt (eredmények különböző táblákból) egy kurzor segítségével tudjuk tovább olvasni

Fontosabb különbségek  Adattípusok  NUMERIC-NUMBER  DATE  Oracle-ben dátum és idő is, máshol csak dátum  időnként van nem standard típus is  Gyors keresésnél néha csak pontos találat lehetséges, míg máshol nem  Helyettesítések (%_ (Oracle) *?#[a-z](Access))  Programozási kiterjesztések

Programozás  Visual Basic for ACCESS Sub test() Dim s As String s=”SELECT ….” DoCmd.RunSQL s End Sub  Flexibilis lekérdezések formokkal!

$db = mysql_pconnect('localhost', 'root', ''); if (!$db) {echo 'Nem konnektál!'; exit;}mysql_select_db('gergo'); $q = "SELECT tartuser.userid as uid, tartuser.nev, sum( tartitem.osszeg ) as ossz, max( tartitem.datum ) as utolso"." FROM tartuser, tartitem"." WHERE tartitem.userid = tartuser.userid"." GROUP BY tartitem.userid"." ORDER BY ossz desc"; $res = mysql_query($q); $n = mysql_num_rows($res); $ossz=0; echo ' '; echo ‘ Név '; echo ' Tart '; echo ' Utsó '; echo ' '; for ($i=0;$i<$n; $i++) { $row = mysql_fetch_array($res); if($row['ossz']!=0) { echo ' '; echo ' '.$row['nev']‘; echo ‘ '; echo ' '.$row['ossz'].' '; $ossz+=$row['ossz']; echo ' '.substr($row['utolso'],5).' '; }} echo " Összesen: $ossz ";

XML = eXtensible Markup Language no; surname; firstname 1; Goulson; Phil 2; Pooley; Joanna 3; Jack; Angus 4; Parsons-Hann; Wendy 5; Jenkinson; Debra 6; Jenkinson; Jon 7; Wintringham; Ben 8; Scott; Steve Goulson Phil Pooley Joanna Jack Angus : Scott Steve Elemek Kezdő "tag" Tartalom Záró "tag" Attribútumok Név Érték

Egyszeru kenyer Liszt Eleszto Viz So Gyúrd össze az összetevőket egyenletesen Takard le ruhával és hagyd kelni egy órán keresztül Gyúrd át újra majd tegyed forró sütőbe két órára DOM=Document Object Model (bejárható)DOM=Document Object Model (bejárható) SAX=Simple API for XML (eseményvezérelt)SAX=Simple API for XML (eseményvezérelt) Mire jó? Mire jó? RSS, INI, kis adatbázis, oldalleírás, adatcsere...

Adatbiztonság  Az adatbázis feladata  minden esemény naplózása  összeomlás után automatikus helyreállás  hibás adatok kiszűrése  Rendszergazda/főnök feladata  biztonsági másolat készítése  jogosultságok beállítása/ellenőrzése  biztonsági frissítések figyelése, különösen webes alkalmazásnál  auditálás