A könyv ismertetése
Vissza a lap tetejére | A könyv tartalomjegyzéke
Martin Gruber:
SQL A-tól Z-ig
A könyv a relációs adatbázisok szabványos programnyelvéhez, az SQL-hez kíván referenciaként szolgálni, az SQL92 és SQL99 szabványokat alapul véve.
A kötet világosan bemutatja, mely lehetőségek származnak a régi szabványokból, és melyek jelentek meg az újabb szabványokban.
- Az I. rész a relációs adatbázisok működését, valamint az SQL alapjait tekinti át, kitérve a 92-es szabvány néhány egyedi lehetőségére.
- A II. rész valamennyi utasítás leírását tartalmazza, használatuk alakjával, működésük leírásával (a Full SQL92 szinten), az alacsonyabb, illetve régebbi szintek eltéréseinek bemutatásával, valamint kereszthivatkozásokkal és példákkal.
- A III. rész a közös nyelvi elemekre kerít sort. A legújabb SQL szabvány az SQL99, melynek felépítése eltér elődjeitől - itt nem egymásra épülő szinteket találunk, hanem egy "SQL magot" (Core SQL) és különböző bővítési szinteket.
- A IV. rész 1. fejezete áttekintést ad az SQL99-ről, a 2. fejezet pedig kissé elmélyed a Core SQL részleteiben. Szó esik az objektumközpontú programozásról és az eljárásközpontú bővítésekről is.
A kötet a szabványról ír, nem pedig egy adott programról, így mindenkinek jó szívvel ajánlhatjuk, aki SQL alapú adatbáziskezelővel foglalkozik; vagyis alkalmazásfejlesztőknek, webhely- és intranettervezőknek, adatbázisfelügyelőknek, rendszergazdáknak, rendszerelemzőknek és az adatbázisok végfelhasználóinak egyaránt.
Bevezető
A relációs adatbázisok napjainkban a világ leggyakrabban használt
adatbázisai, melyekben számos olyan feladat megoldásra talált, melyek a korábbiakban
nagy fejtörést okoztak a programozóknak. A régebben készült
adatbáziskezelők esetében a programozóknak pontosan tudniuk kellett az adatok
tárolásának formáját, így az alkalmazások tervezése meglehetősen bonyolulttá
vált, módosításuk pedig kemény küzdelemmel járt. A relációs adatbázisokban adatainkat
egy magasabb szinten kezelhetjük. Minden műveletet egy program hajt végre -
ezt DBMS-nek (database management system - adatbáziskezelő rendszer) hívják,
mely egy magasabb szintű programnyelv utasításainak engedelmeskedik. Nem
titkolhatjuk el, hogy egyes rendszerek mindemellett rendelkezésünkre bocsátanak
egy alacsonyabb szintű nyelvet is, mellyel „közelebb kerülhetünk” az adatokhoz,
de a közös nevező a szabványos SQL marad. Következésképpen, bárki, aki relációs
adatbázist kíván készíteni, meg kell tanulja az SQL használatát.
Az
SQL szabvány - régi és új
Az
SQL-t a 70-es években az IBM-nél fejlesztették ki, és az első cég, mely komolyan
használatba vette, az Oracle volt. Őket számos további vállalat követte,
melyek mind-mind saját képükre formálták a nyelvet. A gyártók felismerték, hogy
jobban járnak, ha nem kell bajlódniuk az ezernyi változattal, így aztán közös
akarattal szabványosították az SQL-t.
Az
SQL tehát 1986-ban bekerült a nemzetközi ISO, valamint Amerikában az ANSI szabványok
közé. A valódi közös nevezőt a korai SQL szabványok (SQL86 és SQL89) jelentik,
melyekre a fejlesztők kedvükre építhettek. Sokaknak persze ez kevés volt -
a számítógépek képességeinek növekedésével a piac egyre hangosabban követelte
egy olyan szabványos adatbáziskezelő nyelv létrehozását, mely egyszerre
többféle adatbázis kezelésére képes. Időközben számos olyan lehetőség
is széles körben használatossá vált, melyek beépítése egy új szabványba határozottan
kívánatos volt. Mindeme igények nyomán született meg az SQL92 szabvány, mely e
könyv írásának idején is érvényben van.
Az
SQL92-ben számos új lehetőség jelent meg, továbbá szabványossá vált több,
a fejlesztők által eddig különböző módokon alkalmazott módszer. E
szabvány legfontosabb jellemzője azonban mégiscsak a viszonylagos teljesség.
Az ISO szabványokra jellemzően, ha elsajátítjuk az SQL92 használatát,
nincs szükségünk jelentős többlettudásra az adott rendszerről - adatbázisunk
mindenhol ugyanúgy működik, ugyanolyan formában tárolhatjuk benne az adatokat.
Mindennek köszönhetően e szabvány összetettebb elődjeinél, és egyúttal
sokkal nagyobb szerepet kap az adatbázisprogramozók életében.
Az
SQL92 elődjeire - az SQL86-ra és az SQL89-re - épít, így néhány apróságtól
eltekintve az ott leírtak az új szabványban is megvalósíthatók. Könyvünkben világosan
bemutatjuk, mely lehetőségek származnak a régi szabványokból, és melyek jelentek
meg az új SQL szabványban - ezért hát hasznunkra lehet, akármelyik szabványhoz
is igazodunk.
A
legújabb SQL szabvány az SQL99, egy hihetetlenül összetett rendszer, melynek
fejlesztői támogatottsága jelenleg még nem igazán kiforrott. Az igazat megvallva,
nem is igazán tűnik valószínűnek, hogy bárki is a maga teljességében
kihasználja ezt a nyelvet, jóllehet a szabvány erre lehetőséget ad. Felépítése
eltér elődjeitől - itt nem egymásra épülő szinteket találunk, hanem
egy „SQL magot” (Core SQL) és különböző bővítési szinteket. A mag megvalósítása
előfeltétele a szintek használatának, ez utóbbiak azonban (általában) függetlenek
egymástól. Ez a gyakorlatban azt jelenti, hogy egy olyan program, mely támogatja
a magot, válogathat a megvalósítandó szintek között.
Könyvünk
IV. részének 1. fejezetében áttekintést adunk az SQL99-ről, a 2. fejezet
pedig kissé elmélyed a Core SQL részleteiben. E fejezetek jellege inkább leíró,
mivel új fogalmakat vezetnek be, és olyan lehetőségekről írnak, melyek
még nem jelentek meg piaci alkalmazásokban. Az SQL99 alapjaiban mutatja, merre
halad a nyelv fejlődése, így a termékek általánosságban követik majd ezt
az irányt, különös tekintettel az objektumközpontú (objektum-orientált) programozásra
és az eljárásközpontú (procedurális) bővítésekre. Mindazonáltal jelenleg
még nem világos, hány cég csatlakozik a fejlődés eme áramlatához a szabvány
megvalósításával. Az SQL92 megfelelőségét az USA kormányzati tanúsítványa
is bizonyítja, ellentétben az SQL99-cel, ami könnyen azt eredményezheti, hogy a
cégek a korábbi szabványnál maradnak, de kihasználják szabadságukat a részletek
kidolgozásában.
Kinek
ajánljuk a könyvet?
Könyvünkben
egy szabványról írunk, nem pedig egy adott programról, ezért hát mindenkinek jó
szívvel ajánlhatjuk, aki a régebbi, vagy újabb SQL szabványokra épülő
adatbáziskezelővel foglalkozik - vagyis, gyakorlatilag bármely SQL alkalmazással.
Az SQL felhasználói leggyakrabban alkalmazásfejlesztők, webhely-, vagy
intranettervezők, adatbázisfelügyelők, rendszergazdák, rendszerelemzők,
vagy viszonylag „vájtfülű” végfelhasználók. Ez utóbbi csoport tagjai többnyire
arra használják az SQL-t, hogy adatokat tároljanak segítségével, bár ezt legtöbbször
segíti valamilyen alkalmazás, amely átvállalja az SQL kezelésének terheit.
A
könyv felépítéséről
• Az I. rész bemutatja a relációs adatbázisok
működését, valamint az SQL alapjait, kitérve a 92-es szabvány néhány egyedi
lehetőségére. Ez utóbbiakat akkor is érdemes átfutnunk, ha egyébként járatosak
vagyunk az SQL-ben.
• A II. rész az utasítások leírását tartalmazza.
Itt felsoroljuk a rendelkezésre álló utasításokat, használatuk alakjával,
működésük leírásával (a Full SQL92 szinten), valamint az alacsonyabb, illetve
régebbi szintek eltéréseinek bemutatásával, és kereszthivatkozásokkal. Esetenként
példákat is találhatunk az utasítások használatára.
• A III. részben a közös nyelvi elemekre kerítünk
sort, melyeket számos utasítás használ, leírásuk azonban túl terjedelmes ahhoz,
hogy az adott esetekben mellékeljük.
• A IV. rész első fejezetében áttekintést
kaphatunk az SQL99 szabványról. Hivatalos leírása több mint 4000 oldal, így természetesen
csak vázlatosan ismertetjük. Az SQL99 irányt mutat a jövőbeni fejlesztéseknek,
és számos program tartalmazza egyes lehetőségeit, így hát érdemes megismerkednünk
vele még akkor is, ha az általunk használt alkalmazás nem támogatja teljes egészében.
Az új szabvány készítői alaposan felforgatták az SQL szerkezetét, bevezetve
az objektumközpontú lehetőségeket és az eljárásközpontú bővítéseket.
• A IV. rész második fejezete bemutatja a Core
SQL-t. Bármely, az SQL99-et megvalósító rendszernek támogatnia kell a Core
SQL-t, így hát a szabványnak várhatóan ez a része terjed el először széles
körben. Használata igényli néhány, az SQL eddigi gyakorlatában nem ismert fogalom
ismeretét, melyek leírására itt teszünk kísérletet.
A
függelékek általánosabb témákat vázolnak, így szó esik a beágyazott
SQL-ről, a dinamikus SQL-ről, a modulnyelvről, a nyelvtani elemekről
és jelölésmódokról, valamint a hibakódokról. Végezetül egy szójegyzéket is kapunk.
A
H függelékben a tartalom témakörök szerinti csoportosítását találhatjuk, segítségével
könnyebben ráakadhatunk azon utasítások leírására, melyek nevét nem ismerjük.
Összefoglalva,
érdemes elolvasnunk legalább részben az I. részt, míg a II. és III részt referenciaként
hasznáhatjuk (ezek alkotják a könyv törzsanyagát), és mazsolázhatunk a IV. rész
azon témái között, melyek az általunk használt alkalmazáshoz kapcsolhatók.
A könyv tartalomjegyzéke
Vissza a lap tetejére | A könyv ismertetése
Martin Gruber:
SQL A-tól Z-ig
I. rész Bevezetés az SQL használatába
Bevezetés az SQL használatába 1
SQL - Áttekintés 2
Az SQL és a relációs adatbázisok
alapjai 2
Az SQL használatának
módjai 4
Bevezetés a relációs adatbázisok
világába 5
Adatbázisok tervezése 7
Táblák összekapcsolása 11
Az SQL nyelv alapjai 12
Beágyazott SQL 15
Az SQL szabványok áttekintése
16
A szabványos SQL néhány fontos
lehetősége 19
Felhasználók, sémák és
munkamenetek 19
Sémameghatározó utasítások
20
Átmeneti táblák 21
Beépített összekapcsoló
műveletek 22
Csak olvasható, görgethető,
érzéketlen és dinamikus kurzorok 24
Ügyfél-kiszolgáló lehetőségek
26
Bővített
tranzakciókezelés 28
Alkalmazás birtokolta
jogosultságok (a meghatározó jogai) 29
Szabványosított kapcsolati
folyamat 30
Szabványosított rendszertáblák
31
Szabványosított hibakódok
és hibaleírók 31
Értéktartományok 33
Önálló megszorítások
és a megszorítások elhalasztása 34
Nyelvi támogatás 37
Dátum-, idő- és
időtartam-típusok 38
Bináris adattípusok 39
Adattípusok átalakítása
40
Beépített értékfüggvények
40
Új karakterlánc-kezelő
műveletek 41
Sor- és
táblaérték-konstruktorok 42
A hivatkozási épség ellenőrzése
44
Feltételes kifejezések
46
A szabványtól eltérő
függvények automatikus jelzése 47
Modulok és fordítási
egységek 47
II. rész SQL utasítások
SQL utasítások 49
ALLOCATE CURSOR 53
ALLOCATE DESCRIPTOR 55
ALTER DOMAIN 57
ALTER TABLE 59
CLOSE 62
COMMIT WORK 63
CONNECT 64
CREATE ASSERTION 66
CREATE CHARACTER SET 69
CREATE COLLATION 72
CREATE DOMAIN 75
CREATE SCHEMA 78
CREATE TABLE 81
CREATE TRANSLATION 91
CREATE VIEW 92
DEALLOCATE DESCRIPTOR 99
DEALLOCATE PREPARE 100
DECLARE CURSOR 101
DECLARE LOCAL
TEMPORARY TABLE 106
DELETE 109
DESCRIBE 112
DISCONNECT 116
DROP ASSERTION 117
DROP CHARACTER SET 118
DROP COLLATION 119
DROP DOMAIN 120
DROP SCHEMA 121
DROP TABLE 122
DROP TRANSLATION 123
DROP VIEW 124
EXECUTE 125
EXECUTE IMMEDIATE 131
FETCH 133
GET DESCRIPTOR 136
GET DIAGNOSTICS 139
GRANT 141
INSERT 146
OPEN 149
PREPARE 151
REVOKE 155
ROLLBACK 162
SELECT 163
SET CATALOG 190
SET CONNECTION 191
SET CONSTRAINTS MODE 192
SET DESCRIPTOR 193
SET NAMES 197
SET SCHEMA 197
SET SESSION
AUTHORIZATION 198
SET TIME ZONE 199
SET TRANSACTION 200
UPDATE 203
III. rész Közös nyelvi elemek
Közös nyelvi elemek 209
Összesítő függvények
209
Tulajdonosazonosítók 214
CASE kifejezések 216
CAST kifejezések 220
Jelsorrendek 228
Megszorítások 235
Adattípusok 251
Dátum-idő értékfüggvények
269
Leíró területek 270
Számértékű értékfüggvények
279
Predikátumok 282
Sor- és
táblaérték-konstruktorok 309
Karakterlánc értékfüggvények
312
Alkérdések 316
Értékkifejezések 319
IV. rész ‑1. fejezet SQL99 - Áttekintés
SQL99 - Áttekintés 327
A szabvány felépítése és a
megfelelési szintek 328
Új adattípusok 334
Bővített SQL utasítások
336
Programozási kiegészítések
az SQL-ben 337
Tartósan tárolt modulok
(SQL/PSM) 340
Az objektumközpontú alapelvek
gyors áttekintése 343
Objektumok beépítése a relációs
világba 346
Felhasználói adattípusok
létrehozása 352
Típusos táblák 355
Összefoglalás 356
IV. rész ‑2. fejezet Core SQL99
Core SQL99 357
Mi az a Core? 358
LOB-ok 358
CLOB-ok és NCLOB-ok 365
SQL-ből hívott
külső rutinok 367
Egyszerű felhasználói
adattípusok 376
Összefoglalás 380
A függelék Az SQL beágyazása más nyelvekbe
Az SQL beágyazása más nyelvekbe 381
Ada 382
Változók meghatározása
383
C/C++ 384
Változók meghatározása
385
COBOL 387
Változók meghatározása
387
Fortran 389
Változók meghatározása
389
MUMPS 391
Változók meghatározása
391
Pascal 392
Változók meghatározása
392
PL/I 394
Változók meghatározása
394
B függelék A modulnyelv leírása
A modulnyelv leírása 397
Áttekintés 398
Nyelvtan 398
A LANGUAGE záradék 399
C függelék A dinamikus SQL
A dinamikus SQL 409
D függelék Az SQL nyelvleíró azonosítói
Az SQL nyelvleíró azonosítói 413
Azonosítók 414
SQL kulcsszavak 417
E függelék Átállás az SQL92-ről a Core SQL99-re
Átállás az SQL92-ről a
Core SQL99-re 421
Core SQL99 szolgáltatások 422
Általános szabályok 423
INFORMATION_SCHEMA 425
Adatmeghatározás 428
Külső rutinok 431
Adattípusok és értékkifejezések
432
Lekérdezések 436
Adatkezelés 438
F függelék Hibakódok
Hibakódok 439
SQLCODE 440
SQLSTATE 440
G függelék Szójegyzék
Szójegyzék 447
H függelék Témakörök szerinti tartalom
Témakörök szerinti tartalom 467
Objektumok meghatározása és
módosítása 467
Adatkezelés 469
Adatbiztonság és szabályozás
470
Vissza a lap tetejére