Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

SQL Structured Query Language

Hasonló előadás


Az előadások a következő témára: "SQL Structured Query Language"— Előadás másolata:

1 SQL Structured Query Language
Komplett adatbáziskezelő nyelv DDL (Data Definition Language = Adat Definíciós Nyelv) DML (Data Manipulation Language = Adat Manipulációs Nyelv) DQL (Data Query Language = Adat Lekérdező Nyelv) DCL (Data Control Language = Adatelérést Vezérlő Nyelv)

2 Az SQL tulajdonságai szabványos (SQL'86, SQL'89, SQL'92, …), elterjedt nyelv, a legtöbb elterjedt adatbázis kezelő rendszer támogatja relációkon végez műveleteket (relációs algebra) nem algoritmikus, deklaratív nyelv nem rekurzív (SQL’99)

3 Az SQL felhasználása interaktív parancsértelmező segítségével
grafikus adatbázis kezelő környezetbe ágyazva programozási nyelvbe ágyazva

4 Az SQL szintaktikájának jellemzői
utasításokból áll, végét pontosvessző zárja az utasítások záradékokból állnak, amelyek sorrendje kötött az utasítások tartalma: alapszavak, azonosítók, kifejezések, konstansok, listák, elválasztó jelek

5 Adatbázis tervezés és megvalósítás lépései
Fogalmi tervezés: milyen egyedekkel foglalkozunk, egyedhalmazok tulajdonságai, kapcsolatok megtervezése, Egyed-Kapcsolat modell, EK diagram készítése Logikai tervezés: adatmodell, logikai séma meghatározása, (az EK diagramot leképezzük relációs modellre) Fizikai tervezés: konkrét adatbázis meghatározása (Oracle, MSSQL, Mysql stb…) -> fizikai séma Adatbázis létrehozása: scriptek, utasítások futtatása a logikai séma megvalósítására, majd feltöltése tesztadatokkal, majd éles adatokkal üzembe helyezés

6 Modellezési alapfogalmak
Egyed: „önállóan” létező dolog (pl: autó, egyetem, …) Egyed előfordulása: egy konkrét értéke (LEN120 rendszámú , ELTE) Egyedhalmaz: az egyed előfordulásainak összessége Tulajdonság: amivel az egyedeket jellemezzük (név, testmagasság, …) Azonosító, egyértékű- többértékű, egyszerű-összetett, származtatott Kapcsolat: az egyedek között fennálló viszony nincs kapcsolat, 1:1 (ember-neme), 1:N (anya-gyerek), N:M (diák-tantárgy) kötelező - nem kötelező kettő vagy több egyedhalmaz között

7 Kulcs Tulajdonság, amely értékei egyértelműen azonosítják a relációt.
kulcsok fajtái: egyszerű kulcs összetett kulcs: több attribútum alkotja minimál kulcs: összetett kulcs esetén bármelyik attribútumot vesszük el belőle, akkor már nem kulcs  a legkisebb részhalmaz, ami még azonosít kulcsjelöltek: minimális kulcsok közül választhatunk elsődleges kulcs: a kulcsjelöltek közül kiválasztott kulcs alternatív kulcsok: a kulcsjelöltekből nem elsődleges kulcsként kiválasztott elemek idegen kulcs: olyan tulajdonság, amelyik egy másik relációban elsődleges kulcsként szerepel hivatkozott reláció: amelynek elsődleges kulcsára hivatkozunk hivatkozott táblából nem törölhetek sort, ha a hivatkozó táblában szerepel nem vehetek fel új idegen kulcsot a hivatkozó táblába, ha a hivatkozottban nem szerepel hivatkozott táblában módosítás: törlés + bevitel, CASCADE hivatkozási integritási szabály: az adatbázisban nem lehet olyan idegen kulcs, melynek értéke ne egyezik meg egy hozzá kapcsolódó elsődleges kulcs értékével

8 Funkcionális függőség
funkcionális függőség: egy adott R reláció Y tulajdonsága funkcionálisan függ az R reláció X tulajdonságától  ha X minden értéke egyértelműen meghatározza Y értékét funkcionális teljes függőség: legyen X összetett tulajdonság, Y tulajdonság funkcionálisan teljesen függ X-től, ha funkcionálisan függ X-től, de nem függ X egyetlen résztulajdonságától sem tranzitív függőség: R reláció Z tulajdonsága tranzitíven függ X relációtól, ha Z funkcionálisan függ Y-tól, és Y funkcionálisan függ X-től X->Y->Z

9 Normálformák 1. NF: ha a relációban minden érték elemi 2. NF: ha 1. NF
és minden olyan tulajdonsága, amely nem része az elsődleges kulcsnak, funkcionálisan teljesen függ az elsődleges kulcstól (Megszünteti az összetett kulcstól való részleges függésből adódó redundanciát. Ha egy tábla 1NF és egyszerű kulcsa van, akkor biztosan 2NF is.) 3.NF: ha 2.NF és minden olyan tulajdonsága, amely nem része az elsődleges kulcsnak és funkcionálisan teljesen függ az elsődleges kulcstól, és csak attól (A reláció nem tartalmaz tranzitív függőséget.) (Ha egy tábla 2NF és a nem kulcs tulajdonságok között nincs függőség, akkor 3NF is.)

10 Példa adatbázisunk Szeretnénk nyilvántartani a diákok adatait, különböző tantárgyak témaköreiből szerzett különböző típusú osztályzataikat. Diákok adatai: név, születési dátum, anyja neve, neme, haja színe. A tantárgyakról és témaköreikről csak a megnevezésüket tároljuk. A diákok jegyeiről tároljuk, hogy melyik tantárgynak melyik témaköréből kapta, milyen típusú (témazáró, felelés, dolgozat, házi feladat,…) és mikor kapta.

11 Modellezzünk N M Diák Tantárgy 1 1 1 1 N N N Jegy N 1 N N N 1 Típus
Témakör 1

12 A modell leképezése relációs sémába

13 Táblák létrehozása CREATE TABLE táblanév (
mezőnév1 adattípus (szélesség) [mező szintű megszorítás1]    mezőnév2 adattípus (szélesség) [mező szintű megszorítás2],    ...    mezőnévN adattípus (szélesség) [mező szintű megszorításN],    [táblaszintű megszorítás1],    [táblaszintű megszorítás2],    ...    [táblaszintű megszorításM ) Mező szintű (névtelen) megszorítások: Kötelező tartalom előírása: IS [NOT] NULL Egymezős kulcsok: elsődleges_kulcs típus… PRIMARY KEY Idegen_kulcs típus… REFERENCES hivatkozott_tábla (hivatkozott_kulcs) Egyedi mező: mezőnév típus … UNIQUE Táblaszintű (nevesített) megszorítások: Többmezős kulcsok: CONSTRAINT constraint_név PRIMARY KEY (mező,mező2,…) CONSTRAINT constraint_név FOREIGN KEY (mező1,mező2,…) REFERENCES hivatkozott_tábla (mező1,mező2,…),

14 CONSTRAINT záradék (Access)
  CONSTRAINT név {PRIMARY KEY (elsődleges1[, elsődleges2 [, ...]]) | UNIQUE (egyedi1[, egyedi2 [, ...]]) | NOT NULL (nemnull1[, nemnull2 [, ...]]) | FOREIGN KEY [NO INDEX] (hivatkozás1[, hivatkozás2 [, ...]]) REFERENCES idegen tábla [(idegen mező1 [, idegen mező2 [, ...]])] [ON UPDATE CASCADE | SET NULL] [ON DELETE CASCADE | SET NULL]}

15 Példa adatbázisunk sémájának a létrehozása
CREATE TABLE diak ( diak_id counter not null PRIMARY KEY, nev varchar(50) not null, szulido datetime not null, anyja varchar(50) not null, neme char(1) not null, haja varchar(50) null, CONSTRAINT ix_diak UNIQUE ( nev, szulido, anyja ) ) CREATE TABLE tantargy ( tt_id counter not null PRIMARY KEY, tantargy varchar(50) not null UNIQUE

16 Példa adatbázisunk sémájának a létrehozása
CREATE TABLE diak_tt ( diak_id int not null, tt_id int not null ,CONSTRAINT pk_diak_tt PRIMARY KEY ( diak_id, tt_id ) ,CONSTRAINT fk_diak_tt_diak FOREIGN KEY (diak_id) REFERENCES diak (diak_id) ,CONSTRAINT fk_diak_tt_tt FOREIGN KEY (tt_id) REFERENCES tantargy (tt_id) ) CREATE TABLE temakor ( tt_id int not null REFERENCES tantargy (tt_id), tema_id int not null, temakor varchar(50) not null, CONSTRAINT pk_temakor PRIMARY KEY (tt_id, tema_id), CONSTRAINT ix_temakor UNIQUE (tt_id, temakor)

17 Példa adatbázisunk sémájának a létrehozása
CREATE TABLE jegy_tipus ( tipus_id counter not null PRIMARY KEY, tipus varchar(50) not null UNIQUE ) CREATE TABLE jegy ( diak_id int not null, tt_id int not null, tema_id int not null, tipus_id int not null REFERENCES jegy_tipus (tipus_id), datum datetime not null, jegy int not null, CONSTRAINT pk_jegy PRIMARY KEY (diak_id, tt_id, tema_id, tipus_id, datum), CONSTRAINT fk_jegy_diak_tt FOREIGN KEY (diak_id, tt_id) REFERENCES diak_tt (diak_id, tt_id), CONSTRAINT fk_jegy_temakor FOREIGN KEY (tt_id, tema_id) REFERENCES temakor (tt_id, tema_id)

18 Index létrehozás (Access)
A táblákhoz rendelhetünk indexeket, melyek helyes megválasztása esetén a lekérdezések felgyorsíthatók. CREATE [ UNIQUE ] INDEX index ON tábla (mező [ASC|DESC][, mező [ASC|DESC], ...]) [WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }] ASC: növekvő, DESC: csökkenő Pl.: CREATE UNIQUE INDEX ix_diak ON diak ( nev, szulido, anyja ) CREATE INDEX ix_diak_anyja ON diak (anyja);

19 Táblák sémájának módosítása (Access)
ALTER TABLE tábla {ADD {COLUMN mezőtípus [(méret)] [NOT NULL] [CONSTRAINT index] | ALTER COLUMN mezőtípus [(méret)] | CONSTRAINT többmezős_index} | DROP {COLUMN mező I CONSTRAINT indexnév} } Pl.: ALTER TABLE diak ADD COLUMN testmagassag int NULL; ALTER TABLE diak ADD CONSTRAINT fk_diak_tt_diak FOREIGN KEY (diak_id) REFERENCES diak (diak_id); ALTER TABLE diak DROP CONSTRAINT ix_diak_anyja;

20 Törlés (Access) DROP {TABLE tábla | INDEX index ON tábla | PROCEDURE eljárás | VIEW nézet} Pl.: DROP TABLE diak; DROP INDEX ix_diak ON diak;


Letölteni ppt "SQL Structured Query Language"

Hasonló előadás


Google Hirdetések