1 / 20

SQL Structured Query Language

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).

Download Presentation

SQL Structured Query Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SQLStructuredQueryLanguage Komplett adatbáziskezelő nyelv DDL (Data DefinitionLanguage = Adat Definíciós Nyelv) DML (Data ManipulationLanguage = Adat Manipulációs Nyelv) DQL (Data QueryLanguage = Adat Lekérdező Nyelv) DCL (Data ControlLanguage = 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, Mysqlstb…) -> 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őlX->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. N M Diák Tantárgy 1 1 1 Modellezzünk 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_idcounternot null PRIMARY KEY, nevvarchar(50) not null, szulidodatetimenot 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, tantargyvarchar(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_ttPRIMARY KEY ( diak_id, tt_id ) ,CONSTRAINT fk_diak_tt_diakFOREIGN KEY (diak_id) REFERENCES diak (diak_id) ,CONSTRAINT fk_diak_tt_ttFOREIGN KEY (tt_id) REFERENCES tantargy (tt_id) ) CREATE TABLE temakor( tt_id int not null REFERENCEStantargy (tt_id), tema_id int not null, temakorvarchar(50) not null, CONSTRAINT pk_temakorPRIMARY 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, tipusvarchar(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), datumdatetimenot null, jegy int not null, CONSTRAINT pk_jegy PRIMARY KEY (diak_id, tt_id, tema_id, tipus_id, datum), CONSTRAINT fk_jegy_diak_ttFOREIGN KEY (diak_id, tt_id) REFERENCES diak_tt (diak_id, tt_id), CONSTRAINT fk_jegy_temakorFOREIGN 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 indexON 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;

More Related