Adatbázis-kezelés. Második előadás



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

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

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

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

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

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

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 Rendszerek I. 9. SQL alapok (DDL esettanulmány)

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

SQL parancsok feldolgozása

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

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

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

Adatbázisok* tulajdonságai

Bevezetés: az SQL-be

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

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

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

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

3. Előadás. Az SQL adatbázisnyelv (Tartalom) Az SQL története. Az SQL felépítése. Adattípúsok. SQL utasítások

BEVEZETÉS Az objektum fogalma

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

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

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

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

Adatbázis, adatbázis-kezelő

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

Adattípusok. Max. 2GByte

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

Adattípusok. Max. 2GByte

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

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

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

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

MySQL. Elektronikus jegyzet Széchenyi István Egyetem Távközlési tanszék

Adatbázis-kezelés. alapfogalmak

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. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

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

Relációsémák létrehozása SQL nyelvben

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

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

Adatbázis rendszerek SQL nyomkövetés

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

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

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

Adatbáziskezelés - SQL. Forrás: dr. Kovács László: Adatbázisok tervezésének és kezelésének módszertana Computerbooks

Adatbázisok I A relációs algebra

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

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

Adatbázis rendszerek Gy: MySQL alapok

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:

Adatbázisok - 1. előadás

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

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

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

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

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

SQL DDL-1: táblák és megszorítások

Adatbázis Rendszerek II. 3. SQL alapok

Adatbázis Rendszerek II. 3. Ea: MySQL alapok

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Keskeny Zoltán 2007/08 SQL. Structured Query Language. (gyakorlat az SQL2 szabvány alapján) Keskeny Zoltán tanév

Webfejlesztés 4. alkalom

Az SQL nyelv. SQL (Structured Query Language = Strukturált Lekérdező Nyelv).

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

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ÁZIS-KEZELÉS. Modellek

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

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

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

Adatmodellezés. 1. Fogalmi modell

Vizuális programozás gyakorlat

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

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

Adatbázis használat I. 5. gyakorlat

Adatbázisok I. Az SQL nyelv

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

Adatbázis rendszerek. dr. Siki Zoltán

Adatbázis I. 11. előadás. Kulcsok az SQL ben. Hivatkozásépségi megszorítások és idegen kulcsok.

Java és web programozás

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)

Java és web programozás

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Készítette: Szabóné Nacsa Rozália

Adatmodellek. 2. rész

w w w. h a n s a g i i s k. h u 1

Access XP alapokon Tartalomjegyzék

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

Az adatbáziskezelés alapjai

ADATBÁZIS RENDSZEREK I BEADANDÓ

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

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.

Bevezetés: Relációs adatmodell

Megszorítások. AB1_06A_Megszorítások - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

LBRA6i integrált rendszer

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

Átírás:

Adatbázis-kezelés Második előadás 19

Adatmodell Modell: a valóság olyan matematikai vagy tárgyi leképezése, ami a modellalkotó számára fontos tulajdonságokban egyezést utat a valósággal. Adatmodell: az a formalizmus, aminek segítségével leírható a vizsgált problémakör adatelemeinek felépítése, viselkedése. Szemantikai adatmodell (emberközeli, pontatlan pl. ER, UML) Adatbázis adatmodell (gépközeli, pontos pl. hierarchikus 1970, hálós 1980, relációs 1990, objektum-orientált 2000) Séma: az adatmodell alapján létrehozott adatszerkezet 20

ER modell Entity-Relation (ER): adat-kapcsolat Egyszerű szemantikai adatmodell, Chen, 1976 Népszerű, egyszerű tervezési segédeszköz Egyed+tulajdonságok+kapcsolatok Egyed: egy önálló, megkülönböztethető dolog Tulajdonság: Normál (egyértékű, ember.szülidő) Kulcs (azonosít, ember.adószám) Összetett (több rész, ember.lakcím (irsz, város, utca, )) Többértékű (több érték, ember.nyelvvizsga) Származtatott (számítható, ember.életkor) 21

ER modell Kapcsolat: Számosság szerint: 1:1 A kapcsolat egyedeinek (2) pontos megfelelése pl. személy - adószám 1:N Egyik irányban egy egyedelőforduláshoz több egyed kapcsolódhat (a másik irányban pedig csak egy) pl. tulajdonos - autó N:M Bármely egyedelőforduláshoz több előfordulás kapcsolódhat pl. személy - munkahely 22

Relációs adatmodell Egyszerű modell könnyű implementálás, könnyű kezelhetőség, könnyű bővíthetőség Hatékony lekérdezés, műveletkezelés 1969-70, Codd (IBM) A Relational Model of Data for Large Shared Data Banks 23

Relációs adatmodell Tiszta elméleti háttér Egységesség a strukturális és a műveleti részek között Rugalmas kapcsolati rendszer A belső optimalizálásnak nagy jelentősége van! Logikai függetlenség: logikai szinten gondolkodik, nem foglalkozik a fizikai tárolás problémáival RDBMS Relational DataBase Management System 24

Reláció Struktúra: adatbázis, reláció (tábla), rekord, mező Reláció = azonos típusú rekord előfordulások összessége pl. könyv típusú adatok Lehet tábla, vagy táblák descartes szorzata (lásd később) Halmaz, de a gyakorlatban sokszor inkább listát értünk rajta Nincs rekord pozíció Tábladefiníció = a tábla fejléce Nincs két egyforma rekord Cím Szerző Megj_év Oldalszám Versek Petőfi Sándor 1848 245 Hitel Széchenyi István 1830 159 25

Rekord, mező Rekord (sor) = konkrét adatelőfordulás Szerkezet jellemzi Mezőkből áll Integritási feltételek köthetők hozzá Mező Egyértékű Van neve Integritási feltételek köthetők hozzá Cím Szerző Megj_év Oldalszám Versek Petőfi Sándor 1848 245 Hitel Széchenyi István 1830 159 26

Halmazorientált szemlélet Halmazorientált szemlélet: Halmazokban gondolkodik, (de sokszor számít a sorrend! lista) A halmaz erősíti a matematikai elméleti gondolkodásmódot A fizikai tárolásból lista következik A listákra felhasználói igény van például: a kinyert adatokat nem véletlenszerű, összevissza sorrendben akarom kinyomtatni vagy keresem a 3 legnagyobb magyar várost 27

Kulcs Az egyed egyértelmű azonosításához szükséges tulajdonság vagy tulajdonságcsoport (azon mezők, amik egyértelműen azonosítják egy reláció egyetlen sorát) Lehet 1 v. több mező Például: személyi szám, vagy Tanszéknév + Egyetem neve A kulcs minden sorra egyedi Ennek betartását a (jól tervezett) adatbázis is megköveteli Lehetőleg minimális méretű, elemszámú legyen Ha összetett kulcsból akármit elveszünk, már nem lehet kulcs A relációk összekapcsolása: egy táblában egy másik tábla kulcsértéke szerepel (= idegen kulcs): Rendszám Márka Típus Tulajdonos EFF-362 Opel Astra 1.4 1 JAU-725 Ford Focus 2.0 2 LOL-962 BMW X5 1 28

Kulcs 2. Kulcs megkötések: Egyedi (a táblában nem ismétlődhet az értéke) Nem lehet üres Felesleges redundancia csökkentése: nincs olyan részhalmaza, ami az előző két feltételnek eleget tenne Összetettség alapján: egyszerű: telefonszám (+36204445566) összetett: cikkszám + gyártó (audi: 4B0 905 594 H) RK Rendszám Márka Típus Tulajdonos 1 EFF-362 Opel Astra 1.4 1 2 JAU-725 Ford Focus 2.0 2 3 LOL-962 BMW X5 1 29

1:N (egy-több) kapcsolat A kapcsolatok adatértékeken keresztül valósulnak meg Autó Rendszám Márka Kapcsoló mező: a hivatkozó rekordban Típus szerepel, a hivatkozott rekordelőfordulást Tulajdonos azonosítja Tartalma: a hivatkozott rekordelőfordulás kulcsértéke (idegen kulcs v. kapcsoló kulcs) Ember Azonosító Név Lakcím Adószám Szül. hely Rendszám Márka Típus Tulajdonos EFF-362 Opel Astra 1.4 1 JAU-725 Ford Focus 2.0 2 LOL-962 BMW X5 1 Azonosító Név Lakcím Adószám Szül. hely 1 Ádám......... 2 Éva......... 30

1:N (egy-több) kapcsolat Idegen kulcs, kapcsoló kulcs: a hivatkozott rekordelőfordulás kulcsa normál mező, tehát egyértékű: 1 kapcsolódó rekordot jelölhet ki Autó Rendszám Márka Típus Tulajdonos Ember Azonosító Név Lakcím Adószám Szül. hely Rendszám Márka Típus Tulajdonos EFF-362 Opel Astra 1.4 1 JAU-725 Ford Focus 2.0 2 LOL-962 BMW X5 1 Azonosító Név Lakcím Adószám Szül. hely 1 Ádám......... 2 Éva......... 31

N:M kapcsolat Az idegen kulcs egyik oldalra sem tehető Segédtábla szükséges Cég C_Azonosító Név Telephely Tulajdonos Alkalmazott C_Azonosító E_Azonosító Ember E_Azonosító Név Lakcím Adószám Magasság C_Azonosító Azonosítók Névmérete! Telephely Tulajdonos 1 Béli Kft....... 2 Béni Kft....... 3 Béci Kft....... C_Azonosító E_Azonosító 1 1 1 2 3 2 E_Azonosító Név Lakcím Adószám Magasság 1 Ádám......... 2 Éva......... 32

Integritási feltételek Az adatbázis működéséhez az adatoknak sokféle feltételnek kell megfelelnie Az egyedek (rekordok) megkülönböztethetősége A megkülönböztetés a tulajdonságaik alapján történik Használatuk nem kötelező, de elterjedt nagy segítség a fejlesztőnek és a felhasználónak is. Javítja a megbízhatóságot Különböző szintek Adatszintű (mezőszintű) Rekordszintű Táblaszintű Adatbázis-szintű 33

Integritási feltételek Adatszintű (mezőszintű) életkor >= 0, adószám = 12 számjegy NOT NULL: nem maradhat üres CHECK feltétel: értékellenőrzés Rekord szintű: a rekord elfogadhatósága Házastárs rovat nem tölthető ki, ha a családi állapot mező =nőtlen 3 éves gyereknek nem lehet egyetemi végzettsége CHECK feltétel: értékellenőrzés Táblaszintű: a tábla összes rekordját figyelembe veszi az ellenőrzésnél pl. egyedi kulcsérték (biztosítás kötvényszám, alvázszám) autók vásárláskori átlagéletkora nem lehet több 6 évnél PRIMARY KEY, UNIQUE Adatbázis-szintű kulcs és idegen kulcs kapcsolata relációban (azaz minden idegen kulcshoz legyen kulcs) pl. autó típus csak létező, ismert típuskód lehet (külön táblából) FOREIGN KEY 34

Az adatbázis kezelőnyelve: SQL Az RDBMS által értelmezett utasítások nyelve Structured Query Language Az SQL at adatbáziskezelő integrált része ill. egy gépi nyelv Nem önálló szoftver Több nyelv közül ez terjedt el Szabvány (pl. ANSI 1986, ISO 1992, 2008) Nem azt kell leírni, hogy pontosan hogyan kapjuk meg a kívánt adatokat, hanem azt, mely adatokat szeretnénk látni A parancsok formalizált angol mondatok SELECT name FROM students WHERE neptunid= ABC123 DELETE FROM living_people WHERE date_of_death IS NOT NULL Az egyes RDBMS-ek a szabványokat többé-kevésbé követik 35

SQL Nem tartalmaz algoritmikus elemeket (pl. for ciklus) SQL használati módjai Fejlesztőeszközökbe, procedurális programnyelvekbe (C, Java, PHP) felhasználói programokba építve (űrlap, jelentés) Interaktív, közvetlen gépelés (rendszergazdáknak, hozzáértőknek) SQL scriptek (ismétlődő rendszergazdai feladatokra) Egyszerű szintaktika Kis- és nagybetűket nem különbözteti meg Szövegkonstansok idézőjelek között (') A parancsok végén pontosvessző (;) Háromértékű logika (3VL): True, False, Unknown Pl: A=True, B=Unknown A AND B = Unknown 36

SQL A műveletek operandusai és azok eredményei is relációk Operátorai egy vagy két operandusúak: Egy operandus Két operandus szelekció projekció csoportképzés összekapcsolás (join) metszet különbség unió 37

Kommunikáció folyamat 38

Műveletek csoportosítása DDL adat definiálás Objektum létrehozás CREATE Objektum törlés DROP Objektum módosítás ALTER DML adat módosítás Rekord felvitel INSERT Rekord törlés DELETE Rekord módosítás UPDATE DQL adat lekérdezés: az SQL fő erőssége Adatlekérdezés SELECT DCL adat vezérlés Hozzáférés-szabályozás GRANT, REVOKE Tranzakció-kezelés COMMIT 39

Adatdefiníció (DDL) Data Definition Language Adatbázis-objektumok meghatározása: létrehozása, módosítása, törlése CREATE, ALTER, DROP A táblázatok fejléceinek meghatározása táblák, indexek, kapcsolatok definiálása 40

Adatdefiníció (DDL) Létrehozás: CREATE objektumtípus paraméterek Nevek: angol ABC, _, számok CREATE TABLE táblanév (mező1 típus1 megszorítás1, ); CREATE TABLE dolgozo ( id INT PRIMARY KEY, nev VARCHAR(20), munkakor CHAR(1) ); CREATE INDEX munkakor ON dolgozo (munkakor); CREATE USER név IDENTIFIED BY jelszó; Módosítás: ALTER objektumtípus paraméterek ALTER TABLE dolgozo ALTER/MODIFY nev VARCHAR(40) NOT NULL; ALTER TABLE dolgozo ADD lakcim VARCHAR(40); Törlés (eldobás): DROP objektumtípus paraméterek DROP INDEX munkakor; DROP TABLE dolgozo; 41

Adatdefiníció tábla létrehozása CREATE TABLE A tábla fejlécének meghatározása CREATE TABLE táblanév ( mezőnév1 típus1 integritásifeltétel1, mezőnév2 típus2 integritásifeltétel2, ) CREATE TABLE auto ( rsz CHAR(6) PRIMARY KEY, szinkod INT UNSIGNED NOT NULL, vonohorog BOOLEAN ) rsz szinkod vonohorog MEH-002 25 FALSE IGA-001 7771 TRUE 42

Kapcsolatok definiálása A kapcsolókulcs változása esetén: Kaszkád: a külső kulcsok is módosulnak (vagy a kapcs. rekordok törlődnek!) Null: A külső kulcs értéke NULL értéket vesz fel Alapérték: A kulső kulcs értéke az alapértelmezettre áll 43

Kapcsolatok definiálása CREATE TABLE táblanév ( mező1 definíció, mező2 definíció, ) Mező definíció: data_type [NOT NULL NULL] [DEFAULT alapértelmezett érték] [AUTO_INCREMENT] [UNIQUE [KEY] [PRIMARY] KEY] [COMMENT 'string'] [Kapcsolat definíció] Kapcsolat definíció: REFERENCES táblanév (mezőnév,...) [MATCH FULL MATCH PARTIAL MATCH SIMPLE] [ON DELETE Kapcsolat opció] [ON UPDATE Kapcsolat opció] Kapcsolat opció: RESTRICT CASCADE SET NULL NO ACTION 44

Adattípusok Adatbáziskezelőtől függően más és más adattípusok vannak, de ezek között természetesen nagy a hasonlóság. Tipikus példák: Szöveges típusok CHAR [(hossz)] megadott hosszúságú karakterlánc VARCHAR (n) csak a karakterláncnak megfelelő hosszúságú területet foglalja el. Maximum n, illetve 255 karakterig. CLOB (m) nagyméretű szöveges karakterlánc, mértékegységgel: K, M, G például CLOB(700M) 45

Adattípusok 2. Bináris adattípusok RAW/BINARY (n) fix méretű bináris adat BLOB (méret) BINARY LARGE OBJECT (méret) nagyméretű adat: az adatok értelmezésére nincs semmilyen megkötés, így segítségükkel tetszőleges adatokat, például fotókat tárolhatunk. A méret megadása mértékegységgel: K, M, G pl: BLOB(2G) 46

Adattípusok 3. Szám típusok INTEGER, TINYINT, SMALLINT, BIGINT egész értékek, különböző értéktartománnyal (8,16,32,64 bit) NUMERIC, DECIMAL [(szélesség [, tizedes)] ] pontos értékű (fixpontos) tizedestörtek tárolására, a szélesség mellett a tizedespont utáni jegyek száma is megadható REAL, FLOAT, DOUBLE lebegőpontos szám tárolására Dátum/idő típusok DATE, TIME, DATETIME/TIMESTAMP Dátum és/vagy időpont tárolására DATE: '2012-05-01' TIMESTAMP '2012-05-01 16:10:05+1:00' Logikai típus BOOLEAN TRUE, FALSE, UNKNOWN érték 47