Adatbázis-kezelés Haladó (?).

Slides:



Advertisements
Hasonló előadás
10. gyakorlat SQL SELECT.
Advertisements

Adatbázis-kezelés Készítette: Asztalos Péter január 12.
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
ADATBÁZISOK.
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
© 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.
A normalizálás az adatbázis-tervezés egyik módszere
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.
Adatbázis-kezelés.
Adatbázis I. Alapfogalmak.
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.
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.
Azonosítók és képzési szabályaik
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ő.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
Microsoft Access V. Készítette: Rummel Szabolcs Elérhetőség:
Információ kezelés Az információ visszakeresésének lehetőségei.
Adatbázis-kezelés.
16. Tétel. Adatbázis: Olyan adatgyűjtemény, amely egy adott feladathoz kapcsolódó adatokat szervezett módon tárolja, és biztosítja az adatokhoz való hozzáférést,
Adatbázis rendszerek II.
Adatbázis-kezelés ACCESS program:
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
Adatbázis-kezelés Papp-Varga Zsuzsanna. Elérhetőségek    as.
Összesítés és csoportosítás lekérdezésekben. Halmazműveletek.
Nézettáblák létrehozása, módosítása és törlése
SQL, Relációs adatmodell
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.
Anyagadatbank c. tárgy gyakorlat Féléves tematika Adatbázis alapfogalmak, rendszerek Adatmodellek, adatbázis tervezés Adatbázis műveletek.
Tervezés, Normalizálás
Statisztika, kutatásmódszertan I.
Adatbázisok Adatbázis: adatok gyűjteménye, amelyeket az adatbázis-kezelő rendszer (DBMS –Database Management System) kezel. Kezelt adatrendszer → adatbázis.
Dr. Krauszné Dr. Princz Mária Adatbázis rendszerek I.
1 Informatikai Szakképzési Portál Adatbázis kezelés Alapfogalmak.
Adatbázis-kezelés SQL-lel
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.
Adatbázis-kezelés JAG,
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.
11. tétel Adatbázis táblái közti kapcsolatok optimalizálása
Adatbázis kezelés. Az adatbázis tágabb értelemben egy olyan adathalmaz, amelynek elemei – egy meghatározott tulajdonságuk alapján – összetartozónak tekinthetők.
Adatbázis kezelés.
Adatbázis-kezelés.
Adatbázis-kezelés Probléma: az excel kezelhetetlen túl sok adat esetén
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
Adatbázisok Fleiner Rita, Tankönyv:
Adatbázis-kezelés Készítette: Asztalos Péter január 12.
Adatbázis-kezelés.
Adatbázis alapfogalmak
5. gyakorlat Fleiner Rita.
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. Alapfogalmak Adat: –észlelhető, felfogható ismeret –jelsorozat –valakinek, vagy valaminek a jellemz ő je –tény, közlés Információ:
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áziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
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.
Adatbázisszintű adatmodellek
Bevezetés Adatbázisok használata. Mi is az adatbázis? Az adatbázisok ma már az élet számos területén alapvető fontossággal bírnak (Google, Amazon, Flickr,
Készítette: Kiss András
Alapfogalmak Adat: rögzített ismeret
Adatbázis alapismeretek
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Relációs adatmodell, normálformák
Adatbázis-kezelés 2. Relációs adatbázisok.
Adatbázis-kezelés.
Előadás másolata:

Adatbázis-kezelés Haladó (?)

Adatfeldolgozás (?) Az adatfeldolgozás egyik módszere, hogy az adott nyilvántartási feladatot egy erre alkalmas programozási nyelv alatti adatstruktúrában tároljuk. Funkció- vagy programorientált adatfeldolgozás

Jellemzői Több file-al dolgozik a program Egy file-t több prg. is kezelhet Ezek a progik függetlenek egymástól A funkciók megvalósítását programokhoz rendelik …

Miért van szükség AB-kezelőkre Hagyományos adatkezelés hátrányai: Redundancia Inkonzisztencia (ellentmondás) Nem rugalmas, nem párbeszédes Sok a karbantartás Feldolgozási vagy programozási többlet Alacsony adatvédelem Konkrét (kötött) file-rendszer Adatbázis szemlélet, ABKR

Adatbázis szemlélet Az adatokat erőforrásoknak tekintjük EF-ok jellemzői: Pénz, idő Általában kevés Fontos a hatékony kihasználás

Az adatbázis-kezelés nem más, mint az adatokkal, mint erőforrásokkal történő gazdálkodás. Az ABKR mint szoftver, ennek az erőforrásgazdálkodásnak egyfajta automatizált eszköze.

Adatbázis rendszer (ABR/DBS) DBS – Data Base System: Adatbázis (DB – Database) AB-kezelő rendszer (DBMS – Data Base Management System) AB-adminisztrátor (DBA – Data Base Administrator) Felhasználói környezet

Adatbázis meghatározások Nagy mennyiségű, összetartozó adat halmaza Adatoknak és a köztük lévő kapcsolatoknak a rendszere Különböző típusú, de tartalmilag összefüggő, egymás rekordjaira hivatkozó bonyolult adatstruktúra, struktúrált file-rendszer

Adatbázis Integrált: több felhasználó és/vagy több felhasználás adatait tárolja együtt Osztott: az AB-hoz több felhasználó férhet hozzá AB fizikai felépítése: AB-file-ok + adatszótár (CDD – Common Data Dictionary)

DBMS Professzionális szintű szoftver Adatorientált adatszervezés Adatkezelési feladatok: AB létrehozása Adatok visszakeresése Adatfelvitel Adatok törlése, módosítása Rendezés Űrlapgenerálás jelentéskészítés

Adatok közötti komplex kapcsolatok létrehozása Többféle hozzáférési mód Szinkronizáció Adatok védelme Adatok integritása Helyreállíthatóság Adatfüggetlenség Eszközfüggetlenség

Követelmények Tároló eszköztől való függetlenség Felhasználói programtól való függetlenség Többféle hozzáférési mód Többen is használhassák egyszerre Gépi hatékonyság Gyors válaszidők EF optimális kihasználása

Folytatás…. Könnyű legyen használni Adatvédelem, titkosság Megbízható, naprakész adatok Rugalmas Kevés redundancia Konzisztencia biztosítása

DBMS komponensei DDL (Data Definition Language – adatdefiníciós nyelv) DML (Data Manipulation Language – adatmanipulációs nyelv) DCL (Data Control Language – adatvezérlő, felügyelő nyelv) QL (Query Language – lekérdező nyelv) Forms Report

DBA feladatai AB megszervezése Szoftverkomponensek kezelése Adatmodell kialakítása Objektumok definiálása Keresési stratégiák megválasztása (index) Jogosultságok adása, szabályozása Szoftverkomponensek kezelése Karbantartás, konzisztencia biztosítása

DBS (ABR) architektúra Külső szint: ahogy az egyes felhasználók látják az AB-t Koncepcionális szint: objektumok szerkezete, kapcsolatok rendszere, hozzáférések Belső szint: fizikai tárolás és elérés módja Fontos az adatfüggetlenség

Az adatfüggetlenségről Logikai adatfüggetlenség Fizikai adatfüggetlenség Teljes adatfüggetlenség

Adatmodellezés Azt az eljárást, mely során a valós világ (egy részének) tényeit és az összefüggéseit tükröző adatok lényeges dolgait kiemeljük, adatmodellezésnek hívjuk. A modellezés eredménye az adatmodell.

VALÓS VILÁG ADATMODELL

Adatfeldolgozási probléma megoldása Mi a modellezés célja? (specifikáció) Megtervezzük a rendszer alapját képező adatmodellt (logikai AM) A modell megvalósítása egy konkrét ABKR-ben (fizikai AM) Modell tesztelése Dokumentálás Használat, karbantartás, követés

Adatmodellek Leképezés eredménye Adatok típusai, előfordulása Egyedek, tulajdonságok, kapcsolatok halmaza Szintjei: Külső Koncepcionális Belső – fizikai

Adatmodellezési módszerek Hierarchikus Hálós Relációs Objektumorientált

Alapelemek és elnevezések EGYED(RELÁCIÓ)NÉV OSZLOPOK Mezőnevek EGYEDTULAJDONSÁGOK (attributum) SZEMÉLY KULCS Rekord Értékek (Mezők) A sárga sor Egyedhalmaz

Egyedtípus (entitás): minden olyan objektum, ami minden más objektumtól megkülönböztethető, amiről adatokat tárolunk, és amit tulajdonságaival kívánunk leírni. Pl. könyv, olvasó, személy

Tulajdonságtípus (attribútum): az egyedek jellemző jegyei KULCS: egyértelműen azonosítja az egyedtípus előfordulását Pl. ISBN, Tagsági szám, Személyi szám Gyenge egyedtípus: pl. szülő-gyerek

Kapcsolattípus: az egyedek logikai viszonya, összefüggése Lehet teljes és parciális. Típusai: Nincs kapcsolat 1:1 1:N N-M N-ágú

ER (Entity Relationship) Egyed kapcsolat modell Magas szintű, logikai modell Egyedtípusokból, a köztük lévő kapcsolatokból, és az attribútumokból épül fel. Modellezéskor a tervező dönti el, hogy mit akar tulajdonságokkal és mit új egyedekkel leírni.

Komponensei Egyedtípus és a gyenge egyedtípus ábrázolása: Attribútumok ábrázolása:

Kapcsolattípusok ábrázolása:

Példa ER modellre

Hierarchikus modell Az adatokat fa szerkezetben kell elrendezni A fa csomópontjaiban és leveleiben helyezkednek el az adatok. A közöttük levő kapcsolat szülő - gyermek kapcsolatnak felel meg. Így csak 1:1 és 1:N típusú kapcsolatok képezhetők le segítségével. Ilyen például az iskola és osztály, vagy akár az osztály és tanuló kapcsolat.

Hierarchiadiagram

Előfordulásdiagram

Hálós adatmodell A kapcsolat egy gráffal írható le. A gráf csomópontok és ezeket összekötő élek rendszere, melyben tetszőleges két csomópont között akkor van adatkapcsolat, ha őket él köti össze egymással. Egy csomópontból tetszőleges számú él indulhat ki, de egy él csak két csomópontot köthet össze. Ebben a modellben N:M kapcsolat is megoldható. Pl. tanárok – diákok, vevő – rendelés tulajdonos - autó

Relációs adatmodell 1. Emberi oldalról közelít a problémához Az AB-ok logikai szerkezetének a leírására alkalmas eszköz A relációs modell előnyei a következők: Ezt az adatszerkezetet egyszerűen értelmezheti a felhasználó is. A logikai adatmodell relációi egy relációs adat-báziskezelő rendszerbe módosítások nélkül átvihetők. A relációs modellben az adatbázis tervezés a normál formák bevezetésével egzakt módon elvégezhető.

A reláció matematikai fogalma Definíció:Legyenek D1, D2, … , Dn halmazok. Az RD1D2…Dn halmazt, ami megfelel egy táblának, relációnak nevezzük. (Mezőhalmazok Descartes szorzatának részhalmaza). Az így értelmezett reláció egy táblázat. Ha pl. a relációnak m eleme van (d1j,…,dnj), ahol j=1,2,…,m, akkor a táblázat az alábbi lehet. Ki kell elégítenie az ALÁBBI ELŐÍRÁSOKAT: Az egyes relációk egyedi névvel rendelkeznek. A relációk oszlopaiban azonos mennyiségre vonatkozó adatok jelennek meg. Az oszlopok névvel rendelkeznek (mezőnév), melyeknek a reláción belül egyediek. A reláció soraiban a logikailag összetartozó adatok kerülnek tárolásra. A reláció sorainak sorrendje közömbös, de nem tartalmazhat két azonos adatokkal kitöltött sort. Egy sor és oszlop metszésében található táblázat elemet mezőnek nevezzük. A mezők tartalmazzák az adatokat. A mezőkben oszloponként különböző típusú (numerikus, szöveges stb..) mennyiségek tárolhatók.

A relációktól általában megköveteljük, hogy ne tartalmazzanak más adatokból levezethető vagy kiszámítható információkat. Például a fenti táblán az érték kiszámítható a rendelkezésre álló adatokból. Hasonlóképpen a személyi szám mellett nincs értelme külön a születési dátumot nyilvántartani..

Relációs adatmodell 2. Az adatokat táblázatok soraiban képezzük le. Összefoglalva a reláció nem más mint egy táblázat, a táblázat soraiban tárolt adatokkal együtt. A relációs adatbázis pedig relációk összessége. A reláció helyett sokszor a tábla vagy táblázat, a sor helyett a rekord, az oszlop helyett pedig az attribútum elnevezés is használatos. Relációk elemei: Sor, Oszlop, Mező

A relációs adatmodellezés alapfogalmai E.F.Codd, 1970 Egyed, tulajdonság, kapcsolat Reláció, rekord Kulcs Anomáliák Redundancia Funkcionális függőség Normál formák

Anomáliák: Bővítési Módosítási Törlési

Normalizálás Cél: Hogyan? Redundáns adattárolás minimalizálása Anomáliák megszüntetése Hogyan? Egymást követő, ún. normál formák kialakításával Minden relációval el kell végezni

Normalizálatlan forma Tetszőleges adatstruktúra -> mátrix 1NF Kulcstól való függőségek eltávolítása 2NF Tranzitív függőségek eltávolítása 3NF

normalizálatlan 1NF 2NF 3NF

Talán egy érthető (?) példa Üzlet napi forgalmát tartjuk nyilván

NAPI_HELYZET(Dátum, Árukód, Árúnév,Ár, Darab,Befizetés) ÖSSZES DARAB ÁRUKÓD ÁRUNÉV ÁR

BEVÉTEL(DÁTUM,ÖSSZEG,BEFIZETÉS) ÖSSZES Másodlagos függőségek vannak: 2NF

ÁRU(ÁRUKÓD,ÁRUNÉV,ÁR) 3NF ÁRUNÉV ÁRUKÓD ÁR Az Árukód egyértelműen meghatározza az áru nevét, árát. Áru neve és ára között nincs kapcsolat = nincs tranzitív függés! 3NF

MENNYISÉG(DÁTUM, ÁRUKÓD,DARAB) Együtt határozzák meg a Darabot, nem külön -> 2NF Darab egyedül van, nem függ mástól 3NF

NAPI_BEVÉTEL(DÁTUM,ÖSSZES) BEFIZETÉS(ÖSSZES,BEFIZETÉS) ÖSSZES BEFIZETÉS 3NF

1NF Tetszőleges adatstruktúrából táblázatot készítünk Egy mezőbe egy adat kerül NAPI_HELYZET(Dátum, Árukód, Árúnév,Ár, Darab, Befizetés)

BEVÉTEL(DÁTUM,ÖSSZES,BEFIZETÉS) NAPI_HELYZET(Dátum, Árukód, Árúnév,Ár, Darab, Befizetés) BEVÉTEL(DÁTUM,ÖSSZES,BEFIZETÉS) ÁRU(ÁRUKÓD,ÁRUNÉV,ÁR) MENNYISÉG(DÁTUM, ÁRUKÓD,DARAB) NAPI_BEVÉTEL(DÁTUM,ÖSSZES) BEFIZETÉS(ÖSSZES,BEFIZETÉS)

Hf. Rendelés száma Vevő kódja Vevő neve Vevő címe Határidő Rendelés dátuma Cikkszám Cikk neve Cikk egysége Cikk ára Mennyit rendelt

Adatbázis-tervezése Az alkalmazások fejlesztésének kulcskérdése. Mivel az alkalmazások nagyon különbözőek lehetnek, ezért csak egy három fázisból álló általános módszert javasolunk: Először 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. Célok meghatározása, adatok, formátumok, algoritmusok kialakítása. Ezután következik a rendszer tervezés az adatbázis logikai modellje. Egyedek meghatározása Egyedeket leíró tulajdonságok megadása Az adatredundancia minimalizálása normálformákkal. Végül fizikai szinten képezzük le a logikai adatbázis modellt,azaz létrehozzuk a számítógépen az adatbázist.

Normálformák 1. 1.NF egy (relációs) táblázat, ha a tábla minden sora különböző. Minden adata egyszerű, nem összetett. RENDEL(Rszám, Vevőkód, Vnév, Vcim, Hatidő, Rendat) TÉTEL(Rszám, Cszám, Cnév, Cegység, Cár, Mennyi) 2.NF ha az adatbázisban összetett kulcs is van, akkor le kell választani az egyszerű kulcsoktól függő attribútumokat. A TÉTEL táblából leválasztható a csak a Cszám-tól függő CIKK tábla CIKK(Cszám,Cnév,Cegység,Cár) TÉTEL(Rszám,Cszám,Mennyi) Az adatok redundanciája még tovább is csökkenthető 3.NF:Ha a 2. normálformás táblák valamelyikében két vagy több attributum tranzitíven függ a kulcstól, akkor ezt is külön táblázatba leválasztjuk. A RENDEL táblázatban a Vevőkód egyértelműen meghatározza a Vnév és Vcím mezőket így a RENDEL táblában kapcsoló mezőként elegendő csak ezt szerepeltetni

Normálformák 2.

Előírt feltételek egy lakásnyilvántartó és karbantartó adatbázis tervezéséhez ÖSSZEFÜGGÉSEK: Egy lakáson többször végezhetnek javítást, de egy javítást mindig egy munkalap ír le. A munkalap száma a munka egyedi azonosítója, szerelőnként egyedi szám. Egy munkát egy szerelő végez, de egy szerelő több munkát is végezhet. Egy munkánál egy munkadíjat számítanak, de több anyagot is használhatnak. A JAVASOLT TÁBLÁZAT KITÖLTÉSI SORRENDJE. 1. A sorokba beírjuk a tervezett mezőneveket 2. Az oszlopokban összegyűjtjük az egyes táblákhoz tartozó mezőket, megjelölve azok minőségét (kulcsmező stb.) 3. Meghatározzuk a kapcsolatukat.

Javasolt adatbázis tervező űrlap

Adatbázis-kezelők szabványosítása Előnyök: Az adatbázisok hordozhatók a különböző platformok között Az alkalmazók kiképzése gazdaságos Az elsők: ANSI és ISO SQL

Az SQL nyelv Az SQL (Structured Query Language= strukturált lekérdező nyelv) nem algoritmikus nyelv, nem tartalmaz algoritmus szerkezeteket (elágazás, ciklus stb.) A lekérdezésen túl más adatkezelési funkciókat is ellát. Az SQL halmaz orientált nyelv, mely a relációs adatmodell adatbázis-kezelő nyelve. Az SQL nyelvnek több verziója van, de van szabványosított változata is. (Mi ezt követjük.) Minden SQL parancs egy kulcsszóval kezdődik, amelyet paraméterek, esetleg újabb kulcsszavak követhetnek. A parancsokat folyamatosan írhatjuk, azonban lehetőség van arra is,hogy a megfelelő strukturáltság biztosítására egyes részeket új sorba írjunk más bekezdéssel.

Szabványok SQL-2: SQL-3: OODBMS szabványok Dátum típus 1993 Adatokkal végezhető számítási műveletek OODBMS szabványok

Üzemmódjai: Önálló SQL Beágyazott SQL: Ada, C, Cobol, Fortran, Pascal, dBase

Az SQL a következő elemekre osztható: adatdefiníciós nyelv (DDL) adatmanipulációs nyelv (DML) lekérdező nyelv (DQL) vezérlés (DCL)

Adatdefinició Tábla létrehozása Tábla törlése Szerkezetének módosítása CREATE TABLE táblanév… Tábla törlése DROP TABLE táblanév Szerkezetének módosítása ALTER TABLE táblanév …

Adatmanipulációk Rekord felvitel: Törlés: adatok módosítása: INSERT INTO táblanév…. Törlés: DELETE FROM táblanév WHERE feltétel adatok módosítása: UPDATE táblanév SET … WHERE feltétel

Vezérlés Tranzakció kezelés Adatok védelme Máskor….

A lekérdező nyelv 1. A lekérdező nyelv egyetlen utasításból áll, mely számos alparancsot tartalmazhat, és a lekérdező utasítások többszörös mélységben egymásba ágyazhatók. Először tekintsük át az egy relációra vonatkozó lekérdezéseket. A projekció műveletét a következő utasítással valósíthatjuk meg: SELECT [DISTINCT] attributum_név, attributum_név, ... FROM reláció_név; A megadott reláció felsorolt attribútumai jelennek meg az utasítás hatására soronként. A DISTINCT módosító megadása esetén csak az egymástól különböző sorok láthatók. Új mezőnevek is megadhatók. Például a Dolgozó reláció Név, Bér, Emelt bér attribútumainak lekérdezése a 10%-os béremelés feltüntetésével: SELECT Név, Bér, 1.1*Bér AS "Emelt bér" FROM Dolgozó; paranccsal történhet. Ha az attributum nevek helyett csak "*"-ot adunk meg, akkor az eredményben a reláció valamennyi attribútuma szerepelni fog: SELECT * FROM Dolgozó;

A lekérdező nyelv 2. A szelekció műveletéhez a WHERE <feltétel> záradékot kell hozzáadni. Például adott intervallumba eső bérek Név és Bér adatai: SELECT Név, Bér FROM Dolgozó WHERE Bér BETWEEN 100 AND 500; vagy a 3/b oszt adatainak kigyűjtése: SELECT * FROM Diakok WHERE osztaly = '3/b'; RENDEZÉS Lehetőség van az eredmények rendezésére is az ORDER BY attributum [ASC|DESC], attributum[ASC | DESC], ...; alparancscsal. ORDER BY Nev kiegészítéssel ABC-és lista készíthető. TÖBB TÁBLÁS LEKÉRDEZÉS A dolgozó neve mellé írjuk ki a Bér és Adó értéket névsorba rendezve: SELECT Név, Bér, Adó FROM Dolgozó, Kifizetés WHERE Dolgozó.Tszám = Kifizetés.Tszám ORDER BY Név; Ez másik formában is megadható a JOIN kapcsolóval: SELECT Név, Bér, Adó FROM Dolgozó JOIN Kifizetés ON Dolgozó.Tszám=Kifizetés.Tszám ORDER BY Név;

A lekérdező nyelv 3. CSOPORTOK A lekérdezés eredményét csoportosíthatjuk és a csoportok között is további szelekciót alkalmazhatunk a GROUP BY és HAVING alparancsokkal. SELECT attributumok FROM reláció [WHERE feltétel] GROUP BY attributum [HAVING csoport_feltétel]; Születési hely szerinti csoportban határozzuk meg Dolgozok számát : SELECT Szhely, COUNT (Tszám) FROM Dolgozó GROUP BY Szhely; Gyűjtsük ki azokat a városokat amelyekre igaz, hogy az adott városban született dolgozók átlagfizetése legfeljebb 120000 Ft. SELECT Szhely,AVG(Bér) AS ‘Átlagfizetés’ FROM Dolgozó GROUP BY Szhely HAVING AVG(Bér)<120000 Vagy például az ötnél nagyobb létszámú osztályok kigyűjtése: SELECT Osztály, COUNT (*) FROM Diakok GROUP BY Osztaly HAVING COUNT (*) > 5

Röviden (=lényeg!) A ZÁRADÉKOK SORRENDJE: FROM (Táblák), WHERE (sorok), GROUP BY (csoport), HAVING (csoportfeltétel), SELECT (oszlopok kiválasztása), ORDER BY (rendezés). LEKÉRDEZÉS esetén SELECT{*|m,m,…}FROM… [WHERE…] [GROUP BY…][HAVING…][ORDER BY…]

COUNT(*) az összes rekordot adja. Az autós példa ÁLTALÁNOS SZABÁLYOK az SQL nyelvre: Nem tesz különbséget a kis és nagybetűk között. A parancs ; -vel végződik. Csak a tizedespontot ismeri. Szöveg ’ ’ vagy ” ” közé, dátum # # közé írandó. Logikai igaz 1 , a hamis 0. A * az összes mezőnevet jelenti. COUNT(*) az összes rekordot adja.

Jelenítsük meg az Autó tábla összes rekordját és oszlopát ! SELECT *FROM auto;

SELECT rendszam, marka, evjarat ORDER BY marka, evjarat DESC; Válasszuk ki a rendszám, márka, évjárat oszlopokat márka, majd évjárat szerint úgy, hogy előbb legyenek a fiatalabb autók ! SELECT rendszam, marka, evjarat FROM auto ORDER BY marka, evjarat DESC;

Az első három ár szerint rendezve csökkenő sorrendben: SELECT TOP 3 * FROM auto ORDER BY ar DESC;

WHERE (szin="kék" AND evjarat In (1991,1993)); Adott évjáratú kék kocsik listázása: SELECT * FROM auto WHERE (szin="kék" AND evjarat In (1991,1993));

WHERE (rendszam Like "Z*" AND szin="fehér"); Z-vel kezdődő rendszámú fehér autók: SELECT * FROM auto WHERE (rendszam Like "Z*" AND szin="fehér");

A legdrágább, legolcsóbb, átlagos ár és összérték: SELECT MAX(ar) AS legdrágább, MIN(ar) AS legolcsóbb, SUM(ar) AS összesen, AVG(ar) AS átlagosan FROM auto;

A rendszám és a kor listázása: SELECT rendszam, 2005-evjarat AS kor FROM auto;

GROUP BY marka, evjarat; Márka és azon belül évjárat szerint csoportosított lista: SELECT marka, evjarat, AVG(ar) AS atlagár FROM auto GROUP BY marka, evjarat;

INSERT INTO auto ( rendszam, marka, szin, evjarat, ar ) Új autó bevitele: INSERT INTO auto ( rendszam, marka, szin, evjarat, ar ) VALUES ('RAJ476', 'Trabant', "szürke", 1993, 400);

Kék színű autók áremelése 20 %-kal: UPDATE auto SET ar = 1.2*ar WHERE szin="kék";

A szürke színűek törlése: DELETE * FROM auto WHERE szin=”szürke";

FROM auto WHERE marka="Opel"); Az Opelek átlagos áránál olcsóbb Opelek: SELECT rendszam, ar FROM auto WHERE marka="Opel" AND ar<(SELECT AVG(ar) FROM auto WHERE marka="Opel");

Azon autók, melyek ára nagyobb, mint bármely Ladáé: SELECT * FROM auto WHERE ar > ALL (SELECT ar FROM auto WHERE marka="Lada");

UJAUTÓ tábla elkészítése: CREATE TABLE ujautó(rendszam text(6), marka text(15),szin text(10), ar SHORT);

ADD COLUMN ujoszlop SHORT; Új oszlop hozzáadása: ALTER TABLE auto ADD COLUMN ujoszlop SHORT;

FROM auto WHERE (((auto.ar)<xxxx) AND ((auto.marka)="Suzuki")); xxxx Ft-nál olcsóbb Suzukik összértéke: SELECT Sum(auto.ar) AS SumOfar FROM auto WHERE (((auto.ar)<xxxx) AND ((auto.marka)="Suzuki"));

Az autók márkája és kora: SELECT auto.marka, Avg(2005-[evjarat]) AS kor FROM auto GROUP BY auto.marka;

GROUP BY auto.marka, auto.evjarat; Az autók átlagára márka és azon belül évjárat csoportosításban: SELECT auto.marka, auto.evjarat, Avg(auto.ar) AS AvgOfar FROM auto GROUP BY auto.marka, auto.evjarat;

Évjárat és márka kereszttábla átlagárakkal: TRANSFORM Avg(auto.ar) AS AvgOfar SELECT auto.evjarat FROM auto GROUP BY auto.evjarat PIVOT auto.marka;

WHERE (((1.5*[ar])<XXXX)); Azok a márkák, amelyek 50 %-al emelt ára kisebb XXXX ezer Ft-nál: SELECT auto.marka, auto.ar, 1.5*[ar] AS EMar FROM auto WHERE (((1.5*[ar])<XXXX));

TRANSFORM Count(auto.rendszam) AS CountOfrendszam SELECT auto.marka, Count(auto.[rendszam]) AS [A következő összege] FROM auto GROUP BY auto.marka PIVOT auto.evjarat;

WHERE (((auto.marka)="Opel"))))); Írassuk ki a legrégebbi Opel rendszámát,márkáját és évjáratát! SELECT auto.rendszam, auto.marka, auto.evjarat FROM auto WHERE (((auto.marka)="Opel") AND ((auto.evjarat)=(SELECT Min(auto.evjarat) AS MinOfevjarat WHERE (((auto.marka)="Opel")))));

WHERE (((auto.marka)="Suzuki"))))); A legolcsóbb Suzukinál kisebb áru autók rendszáma, márkája, ára: SELECT Min(auto.ar) AS MinOfar FROM auto WHERE (((auto.marka)="Suzuki")); (1800) SELECT auto.rendszam, auto.marka, auto.ar WHERE (((auto.ar)<(SELECT Min(auto.ar) AS MinOfar WHERE (((auto.marka)="Suzuki")))));

Validálás Megfelelő adattartalmat biztosít Ellenőrzés: Formai: Dátumértékek valódisága Numerikus adatok karakterei Tartalmi Intervallum ellenőrzés Egyediség ellenőrzése CDV (Checking Decimal Verify)

Adatok védelme Hálózatos felhasználás Több felhasználó hozzáférése Eszközök->adatvédelem: Jelszó Csoportos jogok Titkosítás Tranzakciók

Lehetőségek Excelben: Adatok->Érvényesítés Accesben Pascalban

Access… Adattípus Mezőtulajdonságok: Formátum Bemeneti maszk Alapértelmezett érték Érvényességi szabály Érvényességi szöveg Kötelező Nulla hosszúság engedélyezése

Azonosítók és képzési szabályaik

Személyi azonosító 11 jegyű jelsorozat 1: a nem, az évszázad és az állampolgárság azonosítása Állampolgárság 1899.12.31 után 1900.01.01. előtt született férfi nő magyar 1 2 3 4 nem magyar 5 6 7 8

1997.01.01. és 1999.12.31 között 1999.12.31 után született férfi nő 1   1999.12.31 után született férfi nő 1 2 3 4

8-10. jegy egy sorszám az azonos napon születettek között 2-7. jegy a születési év utolsó két jegye, a hónap és a nap kétjegyű sorszámát adja 8-10. jegy egy sorszám az azonos napon születettek között 11. jegy ellenőrző kód Összegezzük a jegyek és a sorszámaik szorzatát, majd vegyük a 11-el vett maradékot. Ahol ez 10, azok nem adhatóak ki. A sorszámozás 1997.01.01. előtt balról, utána jobbról történik.

Adóazonosító jel Tízjegyű számsor Az 1. jegy a 8 2.- 6. jegy a születési időpont és 1867.01.01 között eltelt napok száma 7 – 9. azonos napon születettek között kiosztott véletlen szám 10. Ellenőrző szám

A 10. jegy képzése Összegezzük a jegyek és a sorszámaik szorzatát, majd tekintjük a 11-el vett maradékot. Ahol ez 10, azok nem adhatóak ki.

TAJ szám 9 jegyű azonosító 1-8 folytonosan kiadott sorszám 9. jegy az ellenőrző CDV kód. A páratlan helyeken állókat 3-mal, a páros helyeken állókat 7-tel megszorozzuk, és a szorzatot összeadjuk. A CDV az összeg 10-es maradéka.

Vény azonosító Speciális, zárt rendszerben használt EAN 13 vonalkód. 2 – 6. jegyek az orvos azonosítója 8 – 12. folyamatos sorszám 13. Ellenőrző kód, az EAN 13-nak megfelelő

ISBN (International Standard Book Number) 10 jegyű azonosító 10 – 8. ország kód (Mo.: 963) 7 – 5. kiadó kódja 4 – 2. kiadvány azonosító 1. Ellenőrző kód: A sorszámmal vett szorzatokat összegezzük. 11-es maradékot kivonjuk 11-ből, ha az 1-nél nagyobb, egyébként 0 esetén 0, 1 esetén X

EAN 13 és az ISBN Az ISBN EAN 13 kóddal is befoglalható: 1 – 3. 978 jegyek mindig 4 – 12 az ISBN jegyek 13 EAN 13 ellenőrző, így az ISBN ellenőr nem kell

Bankkártyaszám és a Luhn algoritmus Balról jobbra haladva a páratlan sorszámúakat megszorozzuk 2-vel. Ha a szorzat értéke > 9, akkor kivonunk 9-t belőle. A számokat összegezzük. Ha a kapott érték 0-ra végződik, akkor helyes a bankkártyaszám.

Az EAN 13 vonalkód 13 numerikus karakter 1 – 2, vagy 1 – 3 a termék származási helye. Pl.: Mo. 599, Olasz: 80-83, belső használatra: 20-29 Következő 4 v. 5 a termék gyártója A további karakterek a 12-ig a terméket azonosítja 13. Ellenőrző kód

EAN 13 ellenőrző kód Paritásnak megfelelően 1-el illetve 3-mal szorozzuk az első 12 jegyet. A 13. jegy az a szám, ami a szorzatösszeget tízzel oszthatóvá egészíti ki. Az EAN 8 kód ua. EAN13 az első 5 jegy nélkül. Ell.: Az első 5 jegy 0.

Pascal megvalósítása Ellenor.pas Ellenor.exe

Tranzakció-kezelés

Fizikai tárolás, elérési mód