zoznamenie.sk

Transkript

zoznamenie.sk
Urãite ste sa pri rie‰ení otázky ukladania údajov vo
svojej firme snaÏili presadiÈ a následne implementovaÈ najkvalitnej‰ie rie‰enie. No pohºad na ceny ‰piãkov˘ch produktov vás moÏno doteraz nútil drÏaÈ sa
viac pri zemi a preferovaÈ lacnej‰ie rie‰enie na úkor
kvalitnej‰ieho. Napríklad veºmi kvalitná a bezpeãná
databáza Oracle rozhodne nepatrila k lacn˘m
a dostupn˘m rie‰eniam. Predchádzajúce verzie
databázy Oracle sa síce technologicky hodili aj pre
malé projekty, no z hºadiska licenãnej politiky to niekedy bolo pomerne investiãne nároãné.
Nová licenãná politika v kombinácii s jednoduchou,
a teda lacnou administráciou otvára nové moÏnosti
nasadenia produktu aj v mal˘ch a stredn˘ch firmách.
Maximálne dvojprocesorovú verziu databázy Oracle
Standard Edition One je moÏné kúpiÈ za 171 663 Sk/
/133 701 Kã (CPU licencia), alebo 5 121 Sk/3 988 Kã
na pouÏívateºa pri minimálnom poãte 5 pouÏívateºov.
Základná cena databázy v tejto minimálnej konfigurácii sa tak dostala pod 26 000 Sk/20 000 Kã.
Malé a stredné firmy budú taktieÏ môcÈ vyuÏívaÈ
v˘hody zabudovanej databázy v komerãn˘ch aplikáciách zakúpen˘ch od tretích firiem. Verzia Oracle
Standard Edition One tak ponúka v˘kon spoºahlivosÈ
a zabezpeãenie databázy Oracle v cenovo v˘hod-
nom jednoprocesorovom systéme. MôÏe byÈ základn˘m kameÀom pre ‰kálovateºnosÈ. Zákazníci tak
budú môcÈ zaãaÈ svoj biznis „v malom“ a roz‰irovaÈ
svoju in‰taláciu podºa rastúcich poÏiadaviek.
Pre nekomerãné a ‰tudijné úãely je (a vÏdy bola)
databáza Oracle 10g, podobne ako drvivá väã‰ina
produktov spoloãnosti Oracle, zdarma a je moÏné
ich plné verzie stiahnuÈ z webu. Licenãné poplatky
sa platia aÏ pri komerãnom nasadení. Hlavnou podmienkou pre získanie databázy na nekomerãné úãely
je ãlenstvo v Oracle Technology Network OTN
(otn.oracle.com), ktoré je taktieÏ bezplatné. âlenom
OTN sa môÏete staÈ po vyplnení prihlasovacieho
formulára na webe. Podobné bezplatné licenãné
ujednanie platí aj pre v˘voj aplikácií. No kaÏd˘ v˘voj
raz skonãí, a ak bol úspe‰n˘ a koncepcia projektu
bola dobrá, aplikáciu je potrebné komerãne nasadiÈ.
Cieºom tejto minipublikácie je zoznámenie sa s databázov˘m serverom Oracle 10g. Nakoºko sa budeme
venovaÈ len základom a spoloãnosÈ Oracle v znaãnej
miere zachováva aj spätnú kompatibilitu, väã‰ina
publikácie je pouÏiteºná aj pre verzie Oracle9i a 8i.
Dizajn aplikácií, nástrojov a utilít je moÏno mierne
odli‰n˘, no princípy zostávajú nezmenené.
ªUBOSLAV LACKO
g znamená grid ...................................................... 1
In‰talácia Oracle 10g ............................................. 3
Oracle Enterprise Manager .................................... 5
SQL konzoly ........................................................... 8
Jazyk PL/SQL ......................................................... 14
Príklad pre zoznámenie sa s jazykom SQL ............ 16
Struãn˘ úvod do procedurálneho jazyka PL/SQL .. 22
Na adrese
http://otn.oracle.com/new/index.html
nájdete detailn˘ a názorn˘ v˘ukov˘ materiál,
ktor˘ umoÏÀuje v priebehu dvoch dní
zvládnuÈ základy DBA na Oracle 10g.
g znamená grid
nia, podklady pre daÀové doklady a podobne.
Skrátka a dobre server pracuje na maximum kapacity a nezriedka sa uvaÏuje, o jeho upgrade za
v˘konnej‰í, nakoºko budúcoroãné uzávierky by
moÏno nemusel stihnúÈ vãas…
Na tomto jednoduchom príklade vidíme, Ïe predpokladané maximum v˘poãtovej kapacity vyuÏijeme len
málokedy, priãom je nepríjemné hlavne to, Ïe tento
v˘kon potrebujeme práve v obdobiach, ktoré sú pre
ekonomiku firmy a jej chod Ïivotne dôleÏité. Rie‰ením
by mohol byÈ prenájom v˘poãtovej kapacity, no ani
toto rie‰enie nie je univerzálne.
Nበpríklad s decembrovou záÈaÏou objednávkového servera a januárovou záÈaÏou finanãného
a ekonomického servera naznaãuje, Ïe
tieto obdobia rovnako ovplyvÀujú marketingovú politiku mnoh˘ch firiem, takÏe
jednoducho môÏe nastaÈ situácia, kedy
si nie je moÏné prenajaÈ ìal‰iu kapacitu.
A skôr neÏ zaãneme uvaÏovaÈ o prenájme, pozrime sa podrobnej‰ie na na‰u
IT infra‰truktúru. Vidíme, Ïe jedna ãasÈ
na‰ej vlastnej informaãnej infra‰truktúry
v podstate zaháºa. Zostáva len navrhnúÈ
kvalitné a v˘konné rie‰enie pre moÏnosti
spolupráce na‰ich vlastn˘ch serverov.
Situácia v decembri, nastáva preÈaÏenie objednávkového servera
Intuitívne sa ponúka rie‰enie s vyrovnávaním ich záÈaÏe.
Prv˘ obrázok je z decembra. BlízkosÈ Vianoc vyvoláva zv˘‰enú vlnu nákupov. A tak server, na ktorom
sa spracovávajú objednávky od zákazníkov, doslova
praská vo ‰víkoch, zatiaº ão server na ekonomickom
oddelení beÏne úãtuje, zo stavu relatívneho pokoja
ho nevyvedie ani spracovanie v˘plat, veì je na to
bohato dimenzovan˘.
Druh˘ obrázok znázorÀuje situáciu v januári. Predaj
tovaru sa dostal na beÏn˘ normál, ão znamená obdobie pokoja pre objednávkov˘ server. No situácia na
ekonomickom oddelení sa zmenila. Skonãil sa fi‰kálny rok (nበpríklad pre jednoduchosÈ predpokladá
zhodu kalendárneho a fi‰kálneho roka), je potrebné
Situácia v januári, nastáva preÈaÏenie servera na ekonomickom oddespracovaÈ koncoroãné uzávierky, v˘kazy, vyhodnote- lení
Kríza v IT na prelome tisícroãí jednak odhalila slabiny
v tejto oblasti a podobne ako kaÏdá kríza a recesia
akcelerovala ìal‰í rozvoj. V deväÈdesiatych rokoch
minulého storoãia sme sa stali svedkami prudkého
boomu investícií v podnikovej IT oblasti. Ak by sme
v‰ak hodnotili efektívnosÈ t˘chto investícií, zistili by
sme, Ïe mnohé servery beÏali väã‰inu ãasu na
neveºk˘ zlomok svojej in‰talovanej kapacity.
V období recesie, kedy nastal zv˘‰en˘ tlak na zhodnocovanie investícií, je markantná snaha o maximálnu efektívnosÈ. Jednou z ciest, ako to dosiahnuÈ,
je grid computing. Princíp grid computingu vysvetlíme na zjednodu‰enom príklade z podnikovej praxe.
V‰imnite si nasledujúce dva obrázky.
1
Rie‰enie vyuÏívaním spojenej v˘poãtovej kapacity
Grid computing transformuje spôsob vyuÏitia zdrojov
podnikmi; virtualizuje vyuÏitie podnikov˘ch zdrojov.
Virtualizuje pouÏívanie podnikov˘ch zdrojov medzi
servermi v dátovom centre, medzi dátov˘mi centrami
v podniku a medzi podnikmi. ·tandardy grid computingu, ktoré umoÏÀujú jeho zavedenie medzi podnikmi, sa intenzívne vyvíjajú.
Orgán ‰tandardov pre grid, GGF, je uÏ zaloÏen˘
a má podporu v‰etk˘ch v˘znamn˘ch dodávateºov
technológií. KaÏd˘ v˘znamn˘ dodávateº informaãn˘ch technológií hovorí o grid computingu a sºubuje
ponuku grid technológií pre podniky. Hoci dodávatelia majú svoju vlastnú interpretáciu pojmu grid computing, tieto interpretácie majú isté spoloãné atribúty.
Ako to uÏ b˘va zvykom, ‰tandardizácia v tejto oblasti
je záleÏitosÈ pomerne zloÏitá a pomalá, zatiaº ão
poÏiadavka dosiahnuÈ prínosy gridu je u veºa firiem
veºmi akútna.
Firma Oracle sa v tejto súvislosti zamerala na implementáciu konceptu gridu priamo do databáze a aplikaãného serveru Oracle, aby ho bolo moÏné vyuÏiÈ aj
v beÏn˘ch podnikov˘ch aplikáciách. V˘hoda takejto
koncepcie je zrejmá na prv˘ pohºad. Nie je potrebné
písaÈ aplikácie ‰pecificky proti rozhraniam umoÏÀujú-
Grid computing zvy‰uje efektívnosÈ podnikov˘ch
zdrojov, nakoºko ponúka spôsob zdruÏenia hardvéru
na spracovanie, priãom odstraÀuje ostrovy nedostatoãne vyuÏit˘ch poãítaãov. MôÏete vytvoriÈ centralizované pooly v˘poãtov˘ch prostriedkov a dynamicky
ich prideºovaÈ prioritám svojej organizácie.
My‰lienka grid computingu môÏe byÈ realizovaná na
viacer˘ch úrovniach. Na najvy‰‰ej úrovni je v˘poãtov˘ systém ako verejná sluÏba. Nemusíte sa staraÈ,
kde sú zapísané va‰e dáta, alebo ktor˘ poãítaã spracúva va‰u poÏiadavku. Mali by ste maÈ
moÏnosÈ ÏiadaÈ o informáciu alebo v˘poãet a dostaÈ, ão Ïiadate – koºko chcete
a kedy chcete.
Toto je analogické spôsobu, ktor˘m fungujú elektrické siete v tom zmysle, Ïe
neviete, kde sa nachádza generátor
alebo ako vyzerá schéma elektrickej
siete. Jednoducho poÏiadate o elektrinu
a dostanete ju. Je jedno, ãi energia,
ktorú spotrebovávame, bola vyrobená
v blízkej elektrárni, prípadne v Rakúsku
alebo Taliansku.
Jednoducho, kto mal dostatok alebo prebytok energie, tak ju dodal do centrálneho distribuãného systému. Cieºom je
urobiÈ v˘poãtové systémy verejnou sluÏRie‰enie vyuÏívaním spojenej v˘poãtovej kapacity
bou – komoditou, a to v‰adeprítomnou.
cim vyuÏitie gridu. Je moÏné napríklad vziaÈ databáOdtiaº pochádza názov grid computing.
Zo strany servera je grid computing hlavne o alokácii zovú aplikáciu napísanú pre prevádzku nad jednoduch˘m databázov˘m serverom a zaãaÈ ju prevádzkozdrojov, zdieºaní informácií a vysokej dostupnosti.
vaÈ na databázovom clusteri (technológia Real AppliAlokácia zdrojov zabezpeãuje, Ïe v‰etci tí, ktorí
cation Clusters je kºúãovou komponentou gridu na
potrebujú alebo poÏadujú zdroje, dostanú, ão potredatabázovej úrovni) bez nutnosti zásahu do aplikábujú. NemôÏe potom nastaÈ situácia, Ïe niektoré
zdroje neãinne zaháºajú a pritom niektoré poÏiadavky cie.
Samozrejme, Ïe problematika prevádzky tak˘chto
z dôvodu nedostatku lokálnej kapacity ostávajú
rozsiahlych systémov prekraãuje rozsah tejto publinesplnené. Zdieºanie informácií zabezpeãuje, Ïe
kácie a väã‰ina z vás bude asi pri zoznamovaní sa
informácie, ktoré pouÏívatelia a aplikácie potrebujú,
s databázou Oracle najskôr rie‰iÈ otázky oveºa jednosú k dispozícii vÏdy tam, kde sú potrebné, a vtedy,
duch‰ie. Zaãnime teda s in‰taláciou.
kedy sú potrebné.
2
Vo verzii 10g sa in‰talácia v˘razne zjednodu‰ila.
Databázu je moÏné nain‰talovaÈ z jediného CD
zhruba za 20 aÏ 30 minút. Nástroj Oracle Universal
Installer (OUI) môÏe uskutoãniÈ aj viacuzlovú in‰taláciu clusterovanej databázy Oracle. Poãas in‰talácie
je moÏné identifikovaÈ názvy hostiteºov. OUI potom
nain‰taluje potrebn˘ softvér databázy Oracle na
v‰etky tieto uzly. Je moÏné sa tieÏ rozhodnúÈ pre
jedin˘ zdieºan˘ obraz softvéru alebo osobitn˘ obraz
na kaÏdom hostiteºskom poãítaãi.
ªahká in‰talácia klienta zjednodu‰uje nasadzovanie
aplikácií na grid. Klienti databázy potrebujú len stiahnuÈ alebo skopírovaÈ veºmi malú podmnoÏinu súborov Oracle klienta a nastaviÈ premennú prostredia.
Zjednodu‰ená in‰talácia klienta je jedn˘m zo základn˘ch predpokladov pre pouÏitie v grid prostrediach,
kde sa klientské poãítaãe dynamicky identifikujú
a konfigurujú.
Ak nám staãí implicitná in‰talácia, cel˘ jej proces sa
odohrá doslova na niekoºko málo kliknutí.
Po kontrole vhodnosti operaãného systému sa zobrazí hlavná obrazovka in‰talaãného programu pre
nastavenie parametrov. Tu sa môÏeme rozhodnúÈ
pre základnú alebo roz‰írenú in‰taláciu.
Pokiaº chceme vytvoriÈ aj implicitnú databázu,
musíme zadaÈ heslo pre jej administráciu, teda heslo
pre úãty SYS, SYSTEM, SYSMAN a DBSNMP. UÏ
v procese in‰talácie je markantná snaha o bezpeãnosÈ. Ak sa pouÏívatelia budú snaÏiÈ zadaÈ klasické
notoricky známe implicitné heslá, napríklad
In‰talácia – o‰etrenie notoricky známych a ãasto pouÏívan˘ch hesiel
3
In‰talácia – zadanie administrátorského hesla
CHANGE_ON_INSTALL alebo MANAGER, in‰talaãná
rutina ich na túto záleÏitosÈ striktne upozorní.
Pri roz‰írenej in‰talácii si môÏeme zvoliÈ nielen
domovsk˘ adresár, ale aj typ in‰talácie a ‰pecifikovaÈ úãel pouÏitia databázy. K ponúkan˘m typom in‰talácie in‰talátor ponúka predbeÏn˘ odhad diskového priestoru, ktor˘ príslu‰ná in‰talácia zaberie.
Enterprise in‰talácia je urãená pre podnikové databázové aplikácie, on-line transaction processing
(OLTP), pre budovanie a prevádzku dátov˘ch skladov
(data warehouse) a rozsiahle internetové aplikácie.
Edícia Standard je urãená pre pracovné skupiny, prípadne oddelenia firiem a podobne. Pre jednopouÏívateºsk˘ v˘voj aplikácií je urãená edícia Personal.
Túto voºbu pouÏije napríklad v˘vojár databázov˘ch
aplikácií pre in‰taláciu databázového servera Oracle
10g na notebook.
Najväã‰iu variabilitu poskytuje voliteºná in‰talácia.
Pochopiteºne nie je urãená pre zaãiatoãníkov. Platí tu
jednoduché pravidlo, Ïe musíme presne vedieÈ, ão
chceme nain‰talovaÈ a pouÏívaÈ.
Voºbou jednej z ponúkan˘ch moÏností v dialógu Set
Database Configuration naznaãíme oblasÈ ìal‰ieho
pouÏívania tejto databázy. Na základe tejto voºby
bude databázov˘ server pri vytváraní novej databázy
Pokiaº nain‰talujeme databázu Oracle 10g s vyuÏitím
implicitn˘ch volieb, bude situácia na disku a s URL
adresami nasledovná:
Konfiguraãné súbory sú v adresári
C:\oracle\product\10.1.0.
Komponenty in‰talácie sa nachádzajú v adresári
C:\oracle\product\10.1.0\Db_1.
E‰te uvedieme dve dôleÏité URL adresy pre
iSQL*Plus a Enterprise Manager
iSQL*Plus URL: http://ncll:5560/isqlplus
Enteprise Manager 10g Database Control URL:
http://ncll:5500/em
(ncll je názov autorovho lokálneho poãítaãa)
Roz‰írená in‰talácia – v˘ber typu in‰talácie
optimalizovaÈ napríklad uloÏenie údajov, prístup
k údajom, spôsob manipulácie s nimi a podobne.
Voºba General Purpose slúÏi k vytvoreniu databázy
pre ‰irokú oblasÈ pouÏitia, od jednoduch˘ch transakcií po komplexné dotazy. Zaruãuje r˘chly prístup
k údajom pre veºk˘ poãet súãasne pripojen˘ch
pouÏívateºov. Poskytuje dostatoãn˘ v˘kon aj pre
budovanie systémov pre podporu rozhodovania –
Decision Support Systems (DSS).
Voºba Transaction Processing poskytuje najvy‰‰í
v˘kon pre jednoduché transakcie veºkého mnoÏstva
súãastne pripojen˘ch pouÏívateºov. Pre dátové
sklady je optimalizovaná voºba Data Warehouse
Database. Nad t˘mito údajmi môÏeme robiÈ napríklad rozsiahle OLAP (Online Analytical Processing)
anal˘zy. Pri voºbe Advanced musíme zadaÈ informácie pre vytvorenie a optimalizáciu databázy sami.
V poslednom kroku in‰talácie sa dozvieme sumárne
informácie o parametroch in‰talácie.
In‰talácia – sumárne informácie o parametroch in‰talácie
Databázov˘ server si môÏeme predstaviÈ ako sluÏbu
v pozadí, ktorá spravuje údaje v databáze a reaguje
na poÏiadavky klientov. Aby sme mohli pracovaÈ
s databázov˘m serverom, potrebujeme k tomu dva
druhy nástrojov. Jednak nástroj pre správu databázy
Oracle Enterprise Manager a jednak konzolovú aplikáciu pre zadávanie SQL príkazov.
Pre na‰e cviãné úãely budeme pouÏívaÈ schému testovacieho klienta SCOTT. V predchádzajúcich verziách bola táto schéma implicitne odomknutá a prihlasovalo sa do nej pomocou parametrov:
PouÏívateºské meno: SCOTT
Heslo: TIGER
Vo verzii Oracle 10g je táto schéma implicitne
zamknutá, preto ako prv˘ administrátorsk˘ úkon
v aplikácii Oracle Enterprise Manager bude sprístupnenie schémy SCOTT a nastavenie prístupov˘ch
parametrov.
Roz‰írená in‰talácia – v˘ber konfigurácie databázy
pre konkrétnu oblasÈ nasadenia
4
URL adresa http://ncll:5500/em
(ncll je názov lokálneho poãítaãa)
Aplikácia Oracle Enterprise Manager (OEM) nám
poskytne najkomplexnej‰ie moÏnosti pre správu
databázového serveru Oracle 10g aj podrobné informácie o stave v akom sa databázová server momentálne nachádza, prípadne sú signalizované potenciálne problémy. K OEM sa musíme prihlásiÈ zo
správcovského úãtu, napríklad SYS.
ZáloÏka Home
„Domovská“ stránka Oracle Enterprise Manageru
umoÏÀuje jednak zistiÈ základné parametre databázy
a sledovaÈ záÈaÏ CPU a stav aktívnej session.
OEM – základná obrazovka
Jednotlivé informácie sú zoskupené do blokov. Blok
General obsahuje tieto informácie:
OEM – prihlásenie sa pouÏívateºa
Po úspe‰nom prihlásení sa nachádzame na hlavnej
stránke OEM. Táto stránka zahrÀuje ‰tyri záloÏky:
◆
◆
◆
◆
Home
Performance
Administration
Maintenance (údrÏba)
Priãom po prihlásení sa nachádzame v záloÏke
Home.
5
Status
Aktuálny stav databázy. MôÏe byÈ „Up“, „Down“,
„Under Blackout“, „Unmonitored“, alebo „Unknown“.
Stav je taktieÏ signalizovan˘ pomocou ikony semaforu.
Up Since
Dátum a ãas posledného ‰tartu databázy.
Time Zone
âasová zóna oblasti kde je databáza nain‰talovaná.
Availability (%)
Percentuálna dostupnosÈ za posledn˘ch 24 hodín.
.
Najskôr ukáÏeme postup pre odomknutie schémy
pouÏívateºa SCOTT, aby sme mohli túto cviãnú
schému pouÏívaÈ pre prípadné experimenty s jazykom PL/SQL. Po prepnutí sa do zloÏky Administration
sa zameriame na blok funkcií Security. Pomocou
URL odkazu USERS v tomto bloku sa zobrazí stránka
so zoznamom pouÏívateºov.
Instance Name
Názov in‰tancie databázy.
Version
âíslo verzie databázy.
Oracle Home
Umiestnenie adresára Oracle Home.
Listener
Listener.
Host
Názov hostovacieho poãítaãa, na ktorom databáza
sídli.
Okrem bloku General obsahuje záloÏka „Home“ e‰te
bloky Host CPU, Active Sessions, High Availability,
Space Usage Diagnostic Summary.
OEM – nastavenie prístupov˘ch parametrov pre schému
SCOTT
Predmetom ná‰ho záujmu je úãet pouÏívateºa
SCOTT, ktor˘ chceme odomknúÈ a nastaviÈ preÀ
implicitné heslo TIGER. (Mimochodom TIGER bolo
meno obºúbeného kocúra oraclovského programátora Bruce Scotta.)
ManipulovaÈ s úãtami môÏeme aj cez klientskú konzolovú aplikáciu. Struãná syntax príkazov je v tabuºke
(dole).
SQL*Plus: Release 10.1.0.2.0 – Production on Pi Apr
23 14:07:32 2004
Copyright (c) 1982, 2004, Oracle. All rights reserved.
OEM – záloÏka Administration
ZáloÏka Administration
Enter user-name: sys as sysdba
Enter password: ******
Z jednotliv˘mi záloÏkami sa zoznámime postupne.
âinnosÈ
Príkaz jazyka SQL
Odomknutie úãtu
ALTER USER meno ACCOUNT UNLOCK
Zamknutie úãtu
ALTER USER meno ACCOUNT LOCK
Zmena hesla pri odomknutom úãte
ALTER USER meno IDENTIFIED BY heslo
Zmena hesla pri zamknutom úãte
ALTER USER meno IDENTIFIED BY heslo ACCOUNT UNLOCK
6
Connected to:
Oracle Database 10g Enterprise Edition Release
10.1.0.2.0 – Production
With the Partitioning, OLAP and Data Mining options
SQL>
ZáloÏka Maintenance
Funkcie, ktoré je moÏné aktivovaÈ zo stránky Maintenence slúÏia pre export a import údajov, napríklad
medzi databázou a súbormi, pre zobrazenie ‰tatistiky a podobne. Funkcie sú zdruÏené do troch blokov: Utilities, Backup/Recovery a Deployments.
ALTER USER SCOTT ACCOUNT LOCK;
ALTER USER SCOTT ACCOUNT UNLOCK;
ALTER USER SCOTT IDENTIFIED BY SCTIGER;
ALTER USER SCOTT IDENTIFIED BY TIGER;
ZáloÏka Performance
Na stránke Preformance sú zobrazené tri hlavné
oblasti pre prehºadné grafické zobrazenie ãasového
priebehu záÈaÏe:
◆ Host
◆ Sessions
◆ Instance Throughput
OEM – záloÏka Performance
7
OEM – záloÏka Maintenance
V bloku Utilities sú zdruÏené funkcie:
◆ Export to File(s)
◆ Import from File(s)
◆ Import from Database
◆ Load Data from File
◆ Gather Statistics
◆ Clone
◆ Reorganize Objects
◆ Make Tablespace Locally Managed
Blok Backup/Recovery obsahuje funkcie:
◆ Schedule
◆ Perform Recovery
◆ Configure Backup
◆ Configure Recovery
◆ Manage Current
◆ Configure Recovery Catalog
ZloÏka Deployments slúÏi pre Software Management.
URL adresa: http://ncll:5560/isqlplus
(ncll je názov lokálneho poãítaãa)
Celkom logická otázka, hlavne od zaãiatoãníka v‰ak
môÏe byÈ: Viem, Ïe s databázou sa pracuje pomocou SQL príkazov, ale ako? Potrebujeme nejakú konzolovú aplikáciu, prostredníctvom ktorej môÏeme jednak zadávaÈ príkazy a taktieÏ aj zobrazovaÈ odozvy
databázového servera. Konzolová aplikácia teda
slúÏi ako jednoduch˘ prostredník medzi klientom
a databázov˘m serverom.
Klient prostredníctvom konzolovej aplikácie zadáva
príkazy (v jazyku SQL) databázovému serveru. Tento
ich vyhodnotí, vykoná a v˘sledok, napríklad v˘pis
obsahu databázovej tabuºky vráti klientovi. Databázová platforma Oracle 10g obsahuje niekoºko klientsk˘ch konzolov˘ch aplikácií:
◆ SQLPLUS
◆ SQL*Plus (Windows aplikácia)
◆ iSQL* Plus (Webová aplikácia)
Databázovému serveru je úplne jedno, odkiaº SQL
príkaz dostane. Rozdiely medzi jednotliv˘mi konzolov˘mi aplikáciami pramenia teda hlavne z hºadiska
pouÏívateºského prístupu a filozofie.
Najjednoduch‰iu konzolu SQLPLUS spustíme príkazom C:\> SQLPLUS priamo z konzoly operaãného
systému, alebo prostredníctvom menu „START“ operaãného systému Windows. PouÏívateºské meno
a heslo môÏeme zadaÈ aj v príkazovom riadku pomocou syntaxe:
C:\> SQLPLUS
pouÏívateºské_meno/heslo@identifikátor
_pripojenia
Konzola SQLPLUS
Pokiaº nám takéto pouÏívateºské rozhranie z nejakého dôvodu nevyhovuje, môÏeme vyuÏiÈ typické
pouÏívateºské rozhranie Windows aplikácie s podobn˘m názvom SQL *Plus. Aplikáciu môÏeme spustiÈ
pomocou hlavného menu operaãného systému,
alebo priamo príkazom SQLPLUSW.
Podobne ako v predchádzajúcom prípade môÏeme
zadaÈ v príkazovom riadku aj prihlasovacie parametre:
C:\> SQLPLUSW
pouÏívateºské_meno/heslo@identifikátor
_pripojenia
Parametrom identifikátor_pripojenia ‰pecifikujeme
protokol, pomocou ktorého sa chceme pripojiÈ, názov
poãítaãa, ãíslo portu a meno databázy, ku ktorej sa
chceme pripojiÈ. PouÏívateº môÏe zadaÈ ako identifikátor pripojenia reÈazec v tvare:
meno_pocitaca:cislo_portu:meno_databazy
napríklad:
mojepc: 1521:oraev
8
Jednoduch‰ie je v‰ak zadaÈ alias identifikátora pripojenia. Tento identifikátor je definovan˘ v súbore
TNSNAMES.ORA, v prípade implicitnej in‰talácie
Oracle9i na platforme Windows nájdeme tento súbor
v adresári
C:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN
\tnsnames.ora
V na‰om prípade je alias ORCL definovan˘ ako:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
ncll)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
miesto obrazovkového bufferu zostáva kurzor na
pôvodnej pozícii.
Webová konzola iSQL*Plus
V˘znam písmena g v oznaãení databáze sme vysvetlili (GRID). Predchádzajúce verzie databázy mali
oznaãenie Oracle9i a predt˘m Oracle8i. Aj v˘znam
písmena i je ºahko identifikovateºn˘ – znamená internet.
Aby bolo moÏné jednoducho pracovaÈ s databázou
na diaºku pomocou SQL príkazov, je súãasÈou
dodávky databázy 10g aj webová konzola iSQL*Plus.
OpäÈ sa mení len druh prístupu cez webov˘ prehliadaã a vzhºad aplikácie, princíp prihlasovania a práce
s údajmi pomocou SQL príkazov zostáva rovnak˘.
URL adresa: http://ncll:5560/isqlplus
(ncll je názov lokálneho poãítaãa)
Konzola SQL*Plus
Aplikáciu je moÏné ovládaÈ pomocou príkazov menu,
alebo pomocou klávesov˘ch skratiek. PouÏívateºom,
ktorí pacujú s in˘mi konzolov˘mi aplikáciami tieto
skratky budú viac – menej známe. Pri presune na iné
iSQL*Plus – prihlásenie sa pouÏívateºa
KLÁVESOVÉ SKRATKY
[Home]
presun na zaãiatok obrazovkového bufferu
[End]
presun na koniec obrazovkového bufferu
[Page Up]
presun na predchádzajúcu stránku
[Page Down]
presun na nasledujúcu stránku
[Alt]+[F3]
nájdi textov˘ reÈazec
[F3] Find
nájdi ìal‰í v˘skyt textového reÈazca
[Ctrl]+[C]
zru‰enie predt˘m spustenej úlohy v SQL*Plus.
[Ctrl]+[C]
kopírovaÈ text (ak nie je spustená úloha v SQL*Plus)
[Ctrl+[V]
vloÏiÈ text z clipboardu
[Shift+[Del]
vymaÏ obrazovku a obrazovkov˘ buffer
9
Syntax niektor˘ch ãastej‰ie pouÏívan˘ch príkazov si
popí‰eme podrobnej‰ie:
@ {uri|meno_suboru[.pripona] }
[argumenty…]
Príkaz umoÏÀuje vykonaÈ príkazy uloÏené na webovej
adrese alebo v súbore.
@c:\pokus.sql
@HTTP://machine_name.domain:port/YEAREND.SQL
VAL1 VAL2
@HTTP://machine_name.domain:port/SCRIPTSERVE
R?ENDOFYEAR VAL1 VAL
dvojit˘ zavináã @@ má rovnak˘ v˘znam ako @
pouÏíva sa pre lep‰iu úpravu skriptov.
/
Príkaz umoÏní opätovné spustenie predchádzajúceho príkazu, ktor˘ ma konzola vo svojom bufferi.
iSQL*Plus – SQL príkaz zadan˘ cez konzolu
Pre na‰e cviãné úãely budeme pouÏívaÈ schému testovacieho klienta SCOTT a prihlasovaÈ sa budeme
pomocou implicitn˘ch parametrov (ich nastavenie je
popísané v stati Oracle Enterprise Manager):
ARCHIVE LOG
{LIST|STOP}|{START|NEXT|ALL|cislo } [TO ciel]
Príkaz umoÏÀuje ovládanie mechanizmu pre vyuÏívanie archívnych redo log súborov. Aktuálny stav
môÏeme vypísaÈ príkazom
ARCHIVE LOG LIST;
PouÏívateºské meno: SCOTT
Heslo: TIGER
BTITLE [printspec [text|variable] …] [ON|OFF]
Pomocou príkazu BTITLE nastavujeme zarovnávanie
a text zápätia kaÏdej stránky v˘stupnej zostavy.
Prehºad vlastn˘ch príkazov konzolovej aplikácie iSQL
Plus:
BTITLE right 'Vypracoval ……………..';
SELECT * FROM dept
@
@@
/ (slash)
ACCEPT
ARCHIVE LOG
ATTRIBUTE
BREAK
BTITLE
CLEAR
COLUMN
COMPUTE
CONNECT
DEFINE
DESCRIBE
DISCONNECT
EXECUTE
EXIT
HELP
LIST
PAUSE
PRINT
PROMPT
RECOVER
REMARK
REPFOOTER
REPHEADER
RUN
SET
SHOW
SHUTDOWN
START
STARTUP
TIMING
TTITLE
UNDEFINE
VARIABLE
WHENEVER OSERROR
WHENEVER SQLERROR
10
DEPTNO
DNAME
LOC
10
ACCOUNTING
NEW YORK
20
RESEARCH
DALLAS
30
SALES
CHICAGO
40
OPERATIONS
BOSTON
Vypracoval . . . . . . . . . . . . . . . . . . . . . . . . .
COL[UMN] [{column|expr} [option …]]
Pomocou príkazu COLUMN nastavujeme formátovacie parametre pre jednotlivé stæpce. Voºba pre stæpec
môÏe obsahovaÈ rôzne príkazy, napríklad:
CLE[AR] – vymaÏe stæpcov˘ formát
FOR[MAT] formátovací_reÈazec – zmení formát
zobrazenia údajov v stæpci
Formátovací reÈazec pre ãísla môÏe obsahovaÈ znak
»9« ako symbol pre ãíslo, bodku ako oddeºovaã
desatinn˘ch ãíslic a ãiarku ako oddeºovaÈ tisícok.
Formátovací reÈazec pre znaky môÏe obsahovaÈ ‰pecifikáciu dæÏky reÈazca An, kde n je poãet znakov. Ak
pouÏijeme klauzulu WORD_WRAP, reÈazec nebude
orezan˘, ale zalomen˘ do viacer˘ch riadkov.
COLUMN loc FORMAT A7 WORD_WRAP;
SELECT * FROM dept;
DEPTNO
DNAME
LOC
10
ACCOUNTING
NEW YOR K
20
RESEARCH
DALLAS
30
SALES
CHICAGO
40
OPERATIONS
BOSTON
Problémom obzvlá‰È v na‰ich konãinách b˘va formát dátumu a ãasu. ·tandardne zobrazovan˘ formát
nemusí vÏdy vyhovovaÈ.
EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
COMM
DEPTNO
7369
SMITH
CLERK
7902
17.12.80
800
7499
ALLEN
SALESMAN
7698
20.02.81
1600
300
30
7521
WARD
SALESMAN
7698
22.02.81
1250
500
30
7566
JONES
MANAGER
7839
02.04.81
2975
20
20
…
MôÏeme zmeniÈ formát dátumu napríklad na 'DD-MM-YYYY',
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MM-YYYY';
EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
7369
SMITH
CLERK
7902
17-12-1980
800
7499
ALLEN
SALESMAN
7698
20-02-1981
1600
300
30
7521
WARD
SALESMAN
7698
22-02-1981
1250
500
30
7566
JONES
MANAGER
7839
02-04-1981
2975
…
11
COMM
DEPTNO
20
20
CONN[ECT] [ { prihlásenie | / } [AS
{SYSOPER|SYSDBA}]]
Príkaz slúÏi k prihláseniu sa klienta k databázovému
serveru. ReÈazec prihlásenie by sme mohli definovaÈ:
pouÏívateºské_meno[/heslo][@identifikátor_pripojenia]
ZadávaÈ úpln˘ prihlasovací reÈazec nie je kvôli bezpeãnosti moÏné.
CONNECT sys/oracle AS SYSDBA;
SP2-0927: CONNECT AS SYSDBA or AS SYSOPER
not allowed through iSQL*Plus URL
PrihlásiÈ sa môÏeme ako beÏn˘ klient napríklad takto:
iSQL* Plus – odhlásenie sa pouÏívateºa
CONNECT scott/tiger
DESC[RIBE]
{[schema.]object[@connect_identifier]}
Príkaz umoÏÀuje vypísaÈ ‰truktúru databázovej
tabuºky, pohºadu alebo ‰pecifikáciu procedúr a funkcií.
EXECUTE príkaz
Pomocou príkazu EXECUTE môÏeme spustiÈ príkaz
jazyka PL/SQL.
VARIABLE n NUMBER
EXECUTE :n := 1
DESC emp;
PL/SQL procedure successfully completed.
Name
Null?
Type
EMPNO
NOT NULL
NUMBER(4)
ENAME
VARCHAR2(10)
JOB
VARCHAR2(9)
MGR
NUMBER(4)
HIREDATE
DATE
SAL
NUMBER(7,2)
COMM
NUMBER(7,2)
DEPTNO
NUMBER(2)
DISC[ONNECT]
Príkaz slúÏi pre odhlásenie sa klienta databázy.
Predpokladajme situáciu, Ïe sme k databázovému
serveru Oracle 10g pripojení ako klient SCOTT.
{EXIT|QUIT}
[SUCCESS|FAILURE|WARNING|n|variable|
:BindVariable] [COMMIT|ROLLBACK]
Ukonãí blok skriptu a prepne sa do vstupnej ãasti
konzoly .
SET premenná hodnota
Príkaz pre nastavovanie systémov˘ch premenn˘ch
konzolovej aplikácie. Zoznam premenn˘ch a parametrov je vypísan˘ pri popise príkazu SHOW.
SQL> SET AUTOCOMMIT ON
autocommit OFF
SHOW parameter
Príkaz umoÏÀuje zobraziÈ informácie o nastavení systémov˘ch konzolovej aplikácie. Ak je parametrom
názov systémovej premennej, napríklad:
SHOW AUTOCOMMIT
autocommit OFF
… príkaz SHOW s parametrom ALL zobrazí nastavenie v‰etk˘ch parametrov (a teda aj ich zoznam).
12
appinfo is OFF and set to „iSQL*Plus“
arraysize 15
autocommit OFF
autoprint OFF
autorecovery OFF
autotrace OFF
blockterminator „.“ (hex 2e)
btitle OFF
cmdsep OFF
colsep „ „
compatibility version NATIVE
concat „.“ (hex 2e)
copycommit 0
COPYTYPECHECK is ON
define „&“ (hex 26)
describe DEPTH 1 LINENUM OFF INDENT ON
echo OFF
embedded OFF
escape OFF
FEEDBACK ON for 6 or more rows
flagger OFF
heading ON
headsep „|“ (hex 7c)
instance „local“
linesize 150
loboffset 1
logsource „“
long 80
longchunksize 80
null „“
numformat „“
numwidth 10
pagesize 24
PAUSE is ON and set to „“
recsep WRAP
recsepchar „ „ (hex 20)
release 1001000200
repfooter OFF and is NULL
repheader OFF and is NULL
serveroutput OFF
sqlcase MIXED
sqlcode 0
sqlpluscompatibility 10.1.0
sqlterminator „;“ (hex 3b)
timing OFF
ttitle OFF
underline „-“ (hex 2d)
USER is „SCOTT“
verify ON
wrap : lines will be wrapped
13
TIMI[NG] [START text|SHOW|STOP]
Príkaz TIMING funguje takmer ako klasické stopky.
Ovláda sa pomocou kºúãov˘ch slov START, SHOW
a STOP.
TIMING START názov
… blok príkazov, ktor˘ch dobu vykonanie chceme
meraÈ.
TIMING SHOW
… ìal‰í blok príkazov, ktor˘ch dobu vykonanie
chceme meraÈ.
TIMING STOP
Príkazom TIMING SHOW zistíme ‰portovou terminológiou povedané „medziãas“. Pre odmerania doby
trvania jedného bloku vystaãíme s príkazmi START
a STOP.
timing for: SQL_TIMER
Elapsed: 00:00:11.45
TTITLE [printspec [text|variable] …]
[ON|OFF]
Pomocou príkazu TTITLE nastavujeme zarovnávanie
a text záhlavia jednej stránky v˘stupnej zostavy.
ZarovnávaÈ môÏeme naºavo (LEFT), na stred
(CENTER), alebo na pravo (RIGHT).
TTITLE center 'Vypis oddeleni firmy';
SELECT * FROM dept;
V˘pis oddelení firmy
DEPTNO
DNAME
LOC
10
ACCOUNTING
NEW YORK
20
RESEARCH
DALLAS
30
SALES
CHICAGO
40
OPERATIONS
BOSTON
Pre pokusy z jazykom PL/SQL budeme pouÏívaÈ
schému testovacieho klienta SCOTT a prihlasovaÈ sa
budeme pomocou implicitn˘ch parametrov
PouÏívateºské meno: SCOTT
Heslo: TIGER
PouÏiÈ môÏeme ºubovoºnú konzolovú aplikáciu, napríklad iSQL*Plus (URL adresa: http://ncll:5560/isqlplus,
kde ncll je v na‰om prípade názov lokálneho poãítaãa).
Ak si chceme prezrieÈ mnoÏinu príkazov jazyka SQL
a PL/SQL, ktorú podporuje databázov˘ server Oracle
10g, môÏeme cez konzolovú aplikáciu zadaÈ príkaz
pre v˘pis rezervovan˘ch slov:
HELP RESERVED WORDS
RESERVED WORDS (PL/SQL)
———————————
PL/SQL Reserved Words have special meaning in PL/SQL, and may not be used for identifier names
(unless enclosed in „quotes“)
An asterisk (*) indicates words are also SQL Reserved Words.
ALL*
ALTER*
AND*
ANY*
ARRAY
AS*
ASC*
AT
AUTHID
AVG
BEGIN
BETWEEN*
BINARY_INTEGER
BODY
BOOLEAN
BULK
BY*
CHAR*
CHAR_BASE
CHECK*
DESC*
DISTINCT*
DO
DROP*
ELSE*
ELSIF
END
EXCEPTION
EXCLUSIVE*
EXECUTE
EXISTS*
EXIT
EXTENDS
EXTRACT
FALSE
FETCH
FLOAT*
FOR*
FORALL
FROM*
JAVA
LEVEL*
LIKE*
LIMITED
LOCK*
LONG*
LOOP
MAX
MIN
MINUS*
MINUTE
MLSLABEL*
MOD
MODE*
MONTH
NATURAL
NATURALN
NEW
NEXTVAL
NOCOPY
PACKAGE
PARTITION
PCTFREE*
PLS_INTEGER
POSITIVE
POSITIVEN
PRAGMA
PRIOR*
PRIVATE
PROCEDURE
PUBLIC*
RAISE
RANGE
RAW*
REAL
RECORD
REF
RELEASE
RETURN
REVERSE
SUBTYPE
SUCCESSFUL*
SUM
SYNONYM*
SYSDATE*
TABLE*
THEN*
TIME
TIMESTAMP
TIMEZONE_ABBR
TIMEZONE_HOUR
TIMEZONE_MINUTE
TIMEZONE_REGION
TO*
TRIGGER*
TRUE
TYPE
UI
UNION*
UNIQUE*
14
CLOSE
CLUSTER*
COALESCE
COLLECT
COMMENT*
COMMIT
COMPRESS*
CONNECT*
CONSTANT
CREATE*
CURRENT*
CURRVAL
CURSOR
DATE*
DAY
DECIMAL*
DECLARE
DEFAULT*
FUNCTION
GOTO
GROUP*
HAVING*
HEAP
HOUR
IF
IMMEDIATE*
IN*
INDEX*
INDICATOR
INSERT*
INTEGER*
INTERFACE
INTERSECT*
INTERVAL
INTO*
IS*
NOT*
NOWAIT*
NULL*
NULLIF
NUMBER*
NUMBER_BASE
OCIROWID
OF*
ON*
OPAQUE
OPEN
OPERATOR
OPTION*
OR*
ORDER*
ORGANIZATION
OTHERS
OUT
Aby sme sa v tom zorientovali, potrebujeme urãit˘
systém. Príkazy databázového jazyka SQL môÏeme
systematicky rozdeliÈ do dvoch základn˘ch skupín:
◆ Data Definition Language (DDL)
◆ Data Manipulation Language (DML)
Niekedy sa k dvom najznámej‰ím skupinám priraìujú aj samostatné skupiny:
◆ Data Control Language (DCL)
◆ Transaction Control Comands (TCC)
Data Definition Language (DDL)
Príkazy zo skupiny DDL umoÏÀujú definovaÈ, vytváraÈ
meniÈ a ru‰iÈ (odstraÀovaÈ) rôzne objekty a ‰truktúry
v relaãn˘ch databázach, ako sú napríklad tabuºky,
indexy, spú‰te, uloÏené procedúry a podobne. TaktieÏ môÏeme vytváraÈ, prideºovaÈ a odoberaÈ pouÏívateºské privilégiá jednotliv˘m pouÏívateºom a skupinám
pouÏívateºov. Sem patria napríklad príkazy:
CREATE DATABASE
CREATE TABLE
ALTER TABLE
DROP TABLE
CREATE INDEX
DROP INDEX
CREATE VIEW
ALTER VIEW
DROP VIEW
15
DROP INDEX
CREATE SEQUENCE
ALTER SEQUENCE
DROP SEQUENCE
CREATE
PROCEDURE
DROP PROCEDURE
CREATE TRIGGER
DROP TRIGGER
ROLLBACK
ROW*
ROWID*
ROWNUM*
ROWTYPE
SAVEPOINT
SECOND
SELECT*
SEPERATE
SET*
SHARE*
SMALLINT*
SPACE
SQL
SQLCODE
SQLERRM
START*
STDDEV
UPDATE*
USE
USER*
VALIDATE*
VALUES*
VARCHAR*
VARCHAR2*
VARIANCE
VIEW*
WHEN
WHENEVER*
WHERE*
WHILE
WITH*
WORK
WRITE
YEAR
ZONE
Data Manipulation Language (DML)
Do tejto skupiny ako vypl˘va uÏ z jej názvu patria príkazy pre manipuláciu s údajmi, teda príkaz SELECT
pre v˘ber údajov z databázy a príkazy pre vkladanie,
aktualizáciu, vymazávanie údajov:
SELECT
UPDATE
INSERT
DELETE
Data Control Language (DCL)
Skupina zahrÀuje ‰peciálne príkazy pre riadenie prevádzky a údrÏbu databázy:
GRANT
ALTER USER
REVOKE
REVOKE CREATE
DROP USER
USER
GRANT
Transaction Control Commands(TCC)
Okrem dvoch najznámej‰ích skupín príkazov jazyka
SQL môÏeme vyãleniÈ aj skupinu príkazov pre riadenie transakcií. Do tejto skupiny patria napríklad príkazy:
SET TRANSACTION
COMMIT
ROLLBACK
SAVEPOINT
Pre zoznámenie sa s jazykom SQL implementovaného v databáze Oracle 10g a zároveÀ ako názorná
ukáÏka kategorizácie príkazov do spomínan˘ch skupín poslúÏi jednoduchá databázová miniaplikácia,
ktorej námetom je evidencia pracovníkov na oddeleniach firmy.
Aplikácia bude vyuÏívaÈ dve jednoduché tabuºky,
jednu pre zoznam oddelení:
Kompletn˘ SQL kód pre vytvorenie a naplnenie tabuliek bude (v‰imnite si kategorizáciu jednotliv˘ch príkazov do skupín) – tab. str. 17.
V˘pis tabuºky oddelenia
ID_ODDELENIA
NAZOV
POSCHODIE
1
Marketing
6
Stæpec
Dátov˘ typ
Popis
2
Riaditelstvo
7
id_odelenia
NUMBER(2)
identifikátor oddelenia,
primárny kºúã
3
Ekonomicke
4
4
Planovacie
3
nazov
VARCHAR2(20)
názov oddelenia
poschodie
NUMBER(2)
ãíslo poschodia, na ktorom je
dané oddelenie vo firemnej
budove
… a druhú pre zoznam pracovníkov:
Stæpec
Dátov˘ typ
Popis
id_prac
NUMBER(4)
Identifikaãné ãíslo pracovníka,
primárny kºúã
meno
VARCHAR2(25)
meno pracovníka
funkcia
VARCHAR2(20)
funkcia, ktorú pracovník zastáva
v rámci firmy
nastupil
DATE
dátum, kedy pracovník do firmy
nastúpil
mzda
NUMBER(7,2)
mzda pracovníka
id_oddelenia NUMBER(2)
ãíslo oddelenia na ktorom pracovník pracuje – cudzí kºúã
16
ALTER USER SCOTT ACCOUNT UNLOCK;
ALTER USER SCOTT IDENTIFIED BY TIGER;
CONNECT SCOTT/TIGER;
DCL (Data Control
Language)
CREATE TABLE oddelenia
(
id_oddelenia NUMBER(2) PRIMARY KEY,
nazov VARCHAR2(20),
poschodie NUMBER(2)
);
DDL (Data Definition
Language)
CREATE TABLE pracovnici
(
id_prac NUMBER(4) PRIMARY KEY,
meno VARCHAR2(25),
funkcia VARCHAR2(20),
nastupil DATE,
mzda NUMBER(7,2),
id_oddelenia NUMBER(2)
);
INSERT
INSERT
INSERT
INSERT
INTO oddelenia VALUES(1, 'Marketing',6);
INTO oddelenia VALUES(2, 'Riaditelstvo',7);
INTO oddelenia VALUES(3, 'Ekonomicke',4);
INTO oddelenia VALUES(4, 'Planovacie',3);
DML
(Data Manipulation
Language)
INSERT INTO pracovnici VALUES
(1, 'Novak Juraj','riaditel', TO_DATE('01.01.1981', 'dd.mm.YYYY'), 50000, 2);
INSERT INTO pracovnici VALUES
(2, 'Pucek Jan','veduci marketingu', TO_DATE('01.01.1984', 'dd.mm.YYYY'), 32000, 1);
INSERT INTO pracovnici VALUES
(3, 'Urban Jozef','uctovnik', TO_DATE('01.01.1992', 'dd.mm.YYYY'), 15000, 3);
INSERT INTO pracovnici VALUES
(4, 'Kuban Peter','uctovnik', TO_DATE('01.01.1989', 'dd.mm.YYYY'), 18000, 3);
INSERT INTO pracovnici VALUES
(5, 'Kubikova Jana','planovac', TO_DATE('01.01.1997', 'dd.mm.YYYY'), 23000, 4);
SELECT * FROM oddelenia;
SELECT * FROM pracovnici;
SELECT meno, funkcia, nazov, mzda
FROM pracovnici, oddelenia
WHERE pracovnici.id_oddelenia = oddelenia.id_oddelenia;
COMMIT;
User altered.
Connected.
Table created.
Table created.
1 row created…
…
17
(Transaction Control
Commands – TCC )
V˘pis tabuºky pracovnici
ID_PRAC
MENO
FUNKCIA
NASTUPIL
MZDA
ID_ODDELENIA
1
Novak Juraj
riaditel
01.01.81
50000
2
2
Pucek Jan
veduci marketingu
01.01.84
32000
1
3
Urban Jozef
uctovnik
01.01.92
15000
3
4
Kuban Peter
uctovnik
01.01.89
18000
3
5
Kubikova Jana
planovac
01.01.97
23000
4
V˘pis dotazu
MENO
FUNKCIA
NAZOV
MZDA
Novak Juraj
riaditel
Riaditelstvo
50000
Pucek Jan
veduci marketingu
Marketing
32000
Urban Jozef
uctovnik
Ekonomicke
15000
Kuban Peter
uctovnik
Ekonomicke
18000
Kubikova Jana
planovac
Planovacie
23000
Jednotlivé skupiny príkazov a dôvod ich kategorizácie si teraz popí‰eme podrobnej‰ie.
DCL (Data Control Language)
Prv˘ blok príkazov obsahuje príkazy pre pripojenie
sa k databázovému serveru, odomknutie a zmena
hesla pouÏívateºa SCOTT (nastavili sme samozrejme
opäÈ pôvodnú prihlasovaciu kombináciu testovacieho klienta SCOTT /TIGER).
PostupnosÈ príkazov pre autentizáciu voãi databázovému serveru:
CONNECT /AS SYSDBA
ALTER USER SCOTT ACCOUNT UNLOCK;
ALTER USER SCOTT IDENTIFIED BY TIGER;
CONNECT SCOTT/TIGER;
Ak by sme túto postupnosÈ príkazov pripomínajúcu
anglické vety preloÏili do slovenãiny, dopadlo by to
zhruba takto:
Modifikuj pouÏívateºa s menom SCOTT, odomkni jeho
úãet.
Modifikuj pouÏívateºa s menom SCOTT, identifikuj ho
podºa hesla TIGER.
Pripoj sa ako SCOTT/TIGER.
MôÏeme si v‰imnúÈ, Ïe v kaÏdej vete (v kaÏdom SQL
príkaze) je minimálne jedno sloveso v rozkazovacom
spôsobe. Veì preto sa to aj volá príkaz.
DDL (Data Definition Language)
Nasledujú príkazy pre vytvorenie databázov˘ch tabuliek oddelenia a pracovnici.
PostupnosÈ príkazov pre vytvorenie dvoch databázov˘ch tabuliek:
CREATE TABLE oddelenia
(
id_oddelenia NUMBER(2) PRIMARY KEY,
nazov VARCHAR2(20),
poschodie NUMBER(2)
);
CREATE TABLE pracovnici
(
id_prac NUMBER(4) PRIMARY KEY,
meno VARCHAR2(25),
funkcia VARCHAR2(20),
nastupil DATE,
mzda NUMBER(7,2),
id_oddelenia NUMBER(2)
);
V t˘chto príkazoch by sme mohli prekladaÈ snáì len
struãn˘ príkaz – CREATE TABLE vytvor tabuºku.
Predpis presne definuje, koºko stæpcov a akého dátového typu má kaÏdá tabuºka.
DML (Data Manipulation Language)
Zostali nám dva bloky príkazov, pomocou ktor˘ch
naplníme postupne obidve tabuºky údajmi.
18
INSERT INTO oddelenia VALUES(1, 'Marketing',6);
INSERT INTO oddelenia VALUES(2, 'Riaditelstvo',7);
INSERT INTO oddelenia VALUES(3, 'Ekonomicke',4);
INSERT INTO oddelenia VALUES(4, 'Planovacie',3);
INSERT INTO pracovnici VALUES
(1, 'Novak Juraj','riaditel', TO_DATE('01.01.1981',
'dd.mm.YYYY'), 50000, 2);
INSERT INTO pracovnici VALUES
(2, 'Pucek Jan','veduci marketingu',
TO_DATE('01.01.1984', 'dd.mm.YYYY'), 32000, 1);
INSERT INTO pracovnici VALUES
(3, 'Urban Jozef','uctovnik', TO_DATE('01.01.1992',
'dd.mm.YYYY'), 15000, 3);
INSERT INTO pracovnici VALUES
(4, 'Kuban Peter','uctovnik', TO_DATE('01.01.1989',
'dd.mm.YYYY'), 18000, 3);
INSERT INTO pracovnici VALUES
(5, 'Kubikova Jana','planovac',
TO_DATE('01.01.1997', 'dd.mm.YYYY'), 23000, 4);
Návrhovú ‰truktúru obidvoch tabuliek môÏeme zobraziÈ aj editovaÈ pomocou nástroje OEM. V zloÏke
Administration pouÏijeme odkaz na funkciu Tables
(v skupine Schema) a vo vybranej schéme (v na‰om
prípade v schéme SCOTT) následne vyberieme
tabuºku, ktorá je predmetom ná‰ho záujmu.
Preklad kaÏdého riadku je veºmi jednoduch˘:
VloÏ do (tabuºky) xxx (záznam), ktor˘ bude obsahovaÈ poloÏky yyy.
OEM – návrhová ‰truktúra tabuºky Oddelenia
Nasledujú príkazy pre v˘ber poÏadovanej mnoÏiny
údajov, v na‰om prípade pre úãely v˘pisu.
SELECT * FROM oddelenia;
SELECT * FROM pracovnici;
SELECT meno, funkcia, nazov, mzda
FROM pracovnici, oddelenia
WHERE pracovnici.id_oddelenia =
oddelenia.id_oddelenia;
Doslovn˘ preklad prv˘ch dvoch príkazov nespôsobí
Ïiadne problémy.
Vyber v‰etko z tabuºky oddelenia.
Vyber v‰etko z tabuºky pracovnici.
V treÈom prípade sa kombinovan˘m dotazom p˘tame
na obsah dvoch tabuliek:
OEM – Návrhová ‰truktúra tabuºky Pracovníci
Vyber poloÏky meno, funkcia, nazov a mzda z tabuliek pracovníci a oddelnia, tak, aby platila podmienka: Stæpec id_oddelenia tabuºky pracovnici sa
rovná stæpcu id_oddelenia tabuºky oddelenia.
19
Tabuºky cviãn˘ch údajov dodávané
s Oracle 10g
V˘ber námetu cviãnej miniaplikácie nebol náhodn˘.
Motív pracovníci – poboãky – v˘roba - ekonómia
firmy sa veºmi ãasto vyskytuje v cviãn˘ch tabuºkách,
ktoré sa nain‰talujú s databázov˘m serverom.
Schéma SCOTT obsahuje tri cviãné tabuºky
◆ EMP tabuºka obsahuje základné údaje o zamestnancoch firmy.
◆ DEPT tabuºka obsahuje informácie o oddeleniach
firmy.
◆ SALGRADE tabuºka obsahuje informácie povedané na‰ou terminológiou o platov˘ch triedach.
Z toho môÏeme logicky odvodiÈ, Ïe tabuºka EMP bola
vytvorená pomocou príkazu:
CREATE TABLE emp
(
empno NUMBER(4) NOT NULL,
ename VARCHAR2(10),
job VARCHAR2(9),
mgr NUMBER(4),
hiredate DATE,
sal NUMBER(7,2),
comm NUMBER(7,2),
deptno NUMBER(2)
);
Tabuºka implicitne obsahuje tieto cviãné údaje –
str. 21 dole.
Tabuºka DEPT bola vytvorená pomocou príkazu:
CREATE TABLE dept
(
deptno NUMBER(2) NOT NULL,
dname VARCHAR2(14),
loc VARCHAR2(13)
);
… a obsahuje tieto cviãné údaje:
Cviãné tabuºky EMP, DEPT a SALGRADE
Tabuºka EMP po nain‰talovaní obsahuje záznamy
o 14 zamestnancoch firmy. Má jednoduchú ‰truktúru,
ktorú môÏeme zobraziÈ príkazom Describe:
DEPTNO
DNAME
LOC
10
ACCOUNTING
NEW YORK
20
RESEARCH
DALLAS
30
SALES
CHICAGO
40
OPERATIONS
BOSTON
DESCRIBE emp;
Name
Null?
Type
EMPNO
NOT NULL
NUMBER(4)
ENAME
VARCHAR2(10)
JOB
VARCHAR2(9)
MGR
NUMBER(4)
HIREDATE
DATE
SAL
NUMBER(7,2)
COMM
NUMBER(7,2)
DEPTNO
NUMBER(2)
Tabuºka SALGRADE obsahuje informácie o mzdách
pre urãité mzdové zaradenie. Je to ak˘si ekvivalent
platov˘ch tried, ktoré sa u nás vyuÏívajú napríklad
v ‰tátnej správe. Na ostatné dve tabuºky priamu
väzbu nemá, poslúÏi nám napríklad pri otázke,
do akej platovej triedy je zaraden˘ príslu‰n˘ pracovník.
Tabuºka SALGRADE bola vytvorená pomocou príkazu:
CREATE TABLE salgrade
(
grade NUMBER,
losal NUMBER,
20
hisal NUMBER(13)
);
notu nemuseli zadaÈ pri zostavovaní SQL dotazu
v etape jeho vytvárania, ale aÏ tesne pred jeho vykonaním. Rie‰ením je pouÏitie substituãnej premennej.
Ak sa pri interpretácii SQL dotazu narazí na substituãnú premennú, konzolová aplikácia iSQL*Plus
vyzve pouÏívateºa, aby zadal jej hodnotu.
a obsahuje tieto cviãné údaje:
GRADE
LOSAL
HISAL
1
700
1200
2
1201
1400
3
1401
2000
4
2001
3000
5
3001
9999
SELECT * FROM emp WHERE sal> &min
Interaktívne v˘stupy
V niektor˘ch prípadoch je v˘hodné keby sme hod-
MôÏeme pouÏiÈ dva typy substituãn˘ch premenn˘ch,
ktoré sa odli‰ujú dobou svojej Ïivotnosti. Navonok sa
lí‰ia sa poãtom znakov & (ampersand) v názve premennej. Hodnota premennej, ktorá má v názve jeden
ampersand, sa zadáva pri kaÏdom vykonávaní príkazu. Hodnota premennej, ktorá má v názve dva
znaky ampersand, sa zadáva iba raz.
iSQL*Plus – v˘pis v˘sledkov dopytu
iSQL*Plus – vyÏiadanie parametra
EMPNO
ENAME
7369
SMITH
CLERK
7902
17-DEC-80
800
7499
ALLEN
SALESMAN
7698
20-FEB-81
7521
WARD
SALESMAN
7698
7566
JONES
MANAGER
7839
7654
MARTIN
SALESMAN
7698
28-SEP-81
1250
7698
BLAKE
MANAGER
7839
01-MAY-81
2850
30
7782
CLARK
MANAGER
7839
09-JUN-81
2450
10
7788
SCOTT
ANALYST
7566
19-APR-87
3000
20
7839
KING
PRESIDENT
17-NOV-81
5000
10
7844
TURNER
SALESMAN
7698
08-SEP-81
1500
30
7876
ADAMS
CLERK
7788
23-MAY-87
1100
20
7900
JAMES
CLERK
7698
03-DEC-81
950
30
7902
FORD
ANALYST
7566
03-DEC-81
3000
20
7934
MILLER
CLERK
7782
23-JAN-82
1300
10
21
JOB
MGR
HIREDATE
SAL
COMM
DEPTNO
1600
300
30
22-FEB-81
1250
500
02-APR-81
2975
20
30
20
1400
30
Jazyk SQL je vo svojej podstate neprocedurálnym
jazykom. Procedurálna nadstavba SQL z dielne
Oracle má názov PL/SQL. (Transaction Processing
Language). PL/SQL plne podporuje procedúry a vetvenie toku programu pomocou podmienok a cyklov
a umoÏÀuje deklarovaÈ kon‰tanty premenné a kurzory vrátane dynamickej deklarácie premenn˘ch.
Jazyk PL/SQL je modulárny a blokov˘. Základnou
entitou programu je blok. Typická ‰truktúra bloku
pozostáva z troch sekcií:
◆ deklaraãná sekcia
◆ v˘konná sekcia
◆ sekcia pre spracovanie v˘nimiek
Deklaraãná sekcia obsahuje deklarácie premenn˘ch,
kon‰tánt, kurzorov a podobne. V˘konná sekcia obsahuje funkãnú logiku, alebo inak povedané aplikaãné
jadro bloku. Potenciálne chybové stavy je moÏné, ba
priam nutné o‰etriÈ v sekcii pre spracovanie v˘nimiek. Schematicky by sme ‰truktúru bloku vyjadrili
nasledovne:
Povinná je len v˘konná sekcia (deklaraãná sekcia
a sekcia pre o‰etrenie v˘nimiek sú voliteºné), preto
minimálna funkãná schéma bloku v jazyku PL/SQL je
znázornená na ìal‰ej schéme:
BEGIN
– v˘konná sekcia
…
END;
Premenné, textové v˘pisy
Pre ladenie blokov programu v jazyku PL/SQL
budeme ãasto potrebovaÈ v˘pis textu do v˘stupného
okna konzolovej aplikácie, napríklad pre v˘pis
obsahu premennej a podobne. Pre tento úãel slúÏi
‰tandardn˘ balíãek DBMS_OUTPUT, konkrétne jeho
procedúra PUT_LINE.
Textov˘ v˘pis do okna konzolovej aplikácie je
DECLARE
– deklaraãná sekcia
…
BEGIN
– v˘konná sekcia
…
EXCEPTION
– sekcia pre o‰etrenie v˘nimiek
…
END;
iSQL*Plus – v˘pis textu pomocou bloku v jazyku PL/SQL
22
potrebné najskôr aktivovaÈ a prípadne nastaviÈ parametre pre v˘pisy. V˘pis aktivujeme pomocou príkazu
SET SERVEROUT ON
Operátory
Podobne ako v SQL príkazoch aj v jazyku PL/SQL
pouÏívame operátory pre zápis matematick˘ch
a logick˘ch aplikácií. Prehºad operátorov PL/SQL
podºa poradia ich priority je v tabuºke:
Kód bloku pre v˘pis textu bude:
SET SERVEROUT ON SIZE 10000
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World');
END;
Podobne si môÏeme nechaÈ vypísaÈ obsah premennej. Premenné v jazyku PL/SQL ale musíme pred ich
prv˘m pouÏitím deklarovaÈ. Pre inicializáciu premennej (priradenie hodnoty) môÏeme pouÏiÈ operátor priradenia = alebo pomocou kºúãového slova
DEFAULT.
SET SERVEROUT ON SIZE 10000
DECLARE
v_pocet NUMBER(3) NOT NULL DEFAULT 100;
BEGIN
DBMS_OUTPUT.PUT_LINE('v_pocet = '|| v_pocet);
END;
Ak chceme vo v˘pise kombinovaÈ statick˘ text
a obsah premennej, alebo obsah viacer˘ch premenn˘ch, pouÏijeme operátor zreÈazenia ||.
Operátor
Operácia
**
umocÀovanie
+, -
zmena znamienka
*, /
násobenie
+, -, ||
sãítanie, odãítanie, násobenie
=, <, >, <=, >=, <>,
!=, ~=, ^=,
IS NULL, LIKE,
BETWEEN, IN
porovnávanie
NOT
logická negácia
AND
logick˘ súãin
OR
logick˘ súãet
Práca s údajmi v tabuºkách pomocou
jazyka PL/SQL
Databázov˘ jazyk je primárne urãen˘ pre prácu
s údajmi v databázov˘ch tabuºkách. Pre v˘ber údajov z databázov˘ch tabuliek a ich priradenie do premenn˘ch slúÏi príkaz SELECT s klauzulou INTO,
SELECT [*] [zoznam_poloÏiek_v˘stupnej_zostavy]
INTO [zoznam_premenn˘ch alebo meno zoznamu]
FROM meno_tabuºky
WHERE podmienka_v˘beru
Podmienkou je, aby bol vráten˘ vÏdy len jeden riadok. Napríklad ak chceme priradiÈ hodnoty z tabuºky
SCOTT.EMP do premenn˘ch v_meno a v_funkcia:
iSQL*Plus – v˘pis obsahu premennej
23
SET SERVEROUT ON SIZE 10000
DECLARE
v_meno emp.ename%TYPE;
v_funkcia emp.job%TYPE;
BEGIN
SELECT ename, job INTO v_meno, v_funkcia
FROM emp WHERE empno = 7788;
—vypis hodnot premennych
DBMS_OUTPUT.PUT_LINE('v_meno = '||
v_meno);
DBMS_OUTPUT.PUT_LINE('v_funkcia = '||
v_funkcia);
END;
Riadenie toku programu
Pre riadenie toku programu pouÏívame rôzne vetvenie pomocou podmienok a cyklov. V struãnosti
ukáÏme niektoré kon‰trukcie:
IF – THEN – END IF
Najjednoduch‰iu podmienku môÏeme zapísaÈ
v tvare:
IF podmienka THEN
postupnosÈ_príkazov
END IF;
napríklad
iSQL*Plus – v˘pis obsahu premennej získanej z databázovej tabuºky
Ak by sme chceli o‰etriÈ potenciálne v˘nimky
(v tomto prípade vedie k chybe, ak sa záznam buì
nenájde, alebo podmienke vyhovuje viac záznamov),
pouÏijeme kód roz‰íren˘ o sekciu EXCEPTION, kde
o‰etríme potenciálne chybové stavy
NO_DATA_FOUND a TOO_MANY_ROWS.
SET SERVEROUT ON SIZE 10000
DECLARE
v_meno emp.ename%TYPE;
v_funkcia emp.job%TYPE;
BEGIN
SELECT ename, job INTO v_meno, v_funkcia
FROM emp WHERE empno = 7788;
—vypis hodnot premennych
DBMS_OUTPUT.PUT_LINE('v_meno = '||
v_meno);
DBMS_OUTPUT.PUT_LINE('v_funkcia = '||
v_funkcia);
EXCEPTION
—osetrenie vynimky NO_DATA_FOUND
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Udaj sme nenasli');
—osetrenie vynimky TOO_MANY_ROWS
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('Prilis mnoho udajov');
END;
SET SERVEROUT ON SIZE 10000
DECLARE
v_vyska NUMBER(3) := 162;
BEGIN
IF v_vyska < 170 THEN
DBMS_OUTPUT.PUT_LINE('Ste prilis nizka na
povolanie modelky.');
END IF;
END;
IF – THEN – ELSE - END IF
âasto je potrebné vykonaÈ nejaké príkazy, alebo
postupnosti príkazov v obidvoch vetvách, to jest ak
podmienka je splnená, aj ak splnená nie je.
IF podmienka THEN
postupnosÈ_príkazov1
ELSE
postupnosÈ_príkazov2
END IF;
V prípade splnenia podmienky sa vykoná postupnosÈ_príkazov1, v opaãnom prípade sa vykoná
postupnosÈ_príkazov2.
Cykly
Jazyk PL/SQL umoÏÀuje vytváraÈ tri druhy cyklov
◆ jednoduch˘ cyklus LOOP bez podmienky, ktor˘
je moÏné ukonãiÈ príkazom EXIT
◆ cyklus FOR na princípe poãítadla
◆ cyklus WHILE s podmienkou na zaãiatku cyklu
Okrem vyhºadávania záznamov môÏeme pomocou
jazyka PL/SQL s údajmi aj manipulovaÈ. Z podmnoÏiny príkazov DML môÏeme vyuÏiÈ príkazy INSERT,
UPDATE a DELETE.
24
EXIT;
END IF;
END LOOP;
dbms_output.put_line('v_citac = '||v_citac);
END;
Jednoduch˘ cyklus
Tomuto cyklu sa hovorí aj nekoneãn˘, pretoÏe sekvencia príkazov v Àom zapísaná sa bude opakovaÈ
dovtedy, k˘m z neho nevyskoãíme príkazom EXIT.
PouÏijeme kºúãové slovo LOOP. postupnost_prikazov musí obsahovaÈ príkaz EXIT pre vyskoãenie
z tela cyklu, alebo podmienku za kºúãov˘m slovom
WHEN
Cyklus typu FOR funguje na princípe svojho vlastného poãítadla.
LOOP
postupnost_prikazov
END LOOP;
FOR poãítadlo IN [REVERSE] najniωia_hodnota..najvy‰‰ia_hodnota LOOP
postupnosÈ_príkazov
END LOOP;
Napríklad
napríklad
SET SERVEROUT ON SIZE 10000
DECLARE
v_citac NUMBER(3) := 0;
BEGIN
LOOP
v_citac := v_citac +1;
IF v_citac >= 20 THEN
SET SERVEROUT ON SIZE 1000
BEGIN
FOR v_citac IN 1..5 LOOP
dbms_output.put_line('v_citac = '||v_citac);
END LOOP;
END;
T ¯ D E N Í K P R O I T P R O F E S I O N Á LY
Vydává: IDG Czech, a. s., Seydlerova 2451/11,
158 00 Praha 5
Tel. ústfiedna
s aut. provolbou: 257 088 + linka; fax: 236 520 812
Recepce: 257 088 111
V˘konn˘ fieditel: Doc. RNDr. Ivan Novotn˘, CSc.
·éfredaktor: Mgr. Karel Taschner (kat)
Publisher: Ing. Jaroslav Hrouda (Hr)
Executive Managing Editor: Mgr. Martin FaÈun (Maf)
Tajemnice redakce: RÛÏena Holíková, tel. 257 088 143
Vedoucí inzertního odd.: Ing. Jitka Vyhlídková, tel. 257 088 181
Vedoucí projektu: Ing. Pavel Louda, tel. 257 088 138
Autor: ªuboslav Lacko
Jazyková úprava:
Grafická úprava:
Adresa redakce:
Internet:
Zlom a pre-press:
Tisk:
Pfiedplatné a reklamace:
Katefiina ·vejdová
Ale‰ Mlejnsk˘
CW, Seydlerova 2451/11, 158 00 Praha 5
[email protected]
TypoText, s. r. o., Praha
âeská Unigrafie, a. s., Praha
IDG Czech, a. s., Seydlerova 2451/11,
158 00 Praha 5, tel. 257 088 162,
fax 235 520 812; e-mail [email protected]
Doruãuje âeská po‰ta, s. p., v systému D + 1
Pfiedplatné pro Slovensko: Magnet-Press Slovakia, s. r. o., Teslova 12,
P.O.BOX 169, 830 00 Bratislava 3,
tel./fax: (00421-2) 44 45 45 59

Podobné dokumenty

Kreativita Originalita Nové prístupy Garancia kvality

Kreativita Originalita Nové prístupy Garancia kvality Hromadná doprava v regiónoch formou integrovan˘ch dopravn˘ch systémov zohráva dôleÏitú úlohu pri rie‰ení zloÏit˘ch dopravn˘ch situácií, hlavne v centrálnych oblastiach miest. V mnoh˘ch mestách sa t...

Více

Embedded SQL v C/C++ úvod

Embedded SQL v C/C++ úvod Tento referát je o Embedded SQL pro C/C++ SQL lze ale na Oracle začlenovat i do jiných jazyků (např. Cobol, Fortran)

Více

manu.l Mafia

manu.l Mafia © 2002 Mafia, Illusion Softworks a.s., Logo Illusion Softworks a Illusion Softworks jsou obchodní známky Illusion Softworks a.s. Gathering of Developers, logo Gathering of Developers, Take 2 Intera...

Více

53_3 FANTOM-navod A4.qxd

53_3 FANTOM-navod A4.qxd Okrem Ïetónov, ktoré pouÏívajú obidve strany, sa vo hre objavia Ïetóny, ktor˘mi disponuje v˘hradne Fantóm. Sú to Ïetóny s lodí, ktoré Fantómovi umoÏÀujú v kritickej situácii únik cez rieku po modre...

Více

-manual Vietcong

-manual Vietcong Konfigurace/dialog nastavení Tato obrazovka vám dovolí nastavit v‰echny hodnoty tak, aby hra bûÏela na va‰em systému co nejlépe. V horní ãásti najdete typ své fické karty, hned pod ním její implici...

Více

Firebird™ Verze 1.5 Release Notes v.1.5

Firebird™ Verze 1.5 Release Notes v.1.5 Přehled doporučené dokumentace naleznete v sekci Dokumentace.

Více

DATABÁZOVÝ DESIGN

DATABÁZOVÝ DESIGN Slova Data, Informace se často používají jako synonyma. Nicméně, mají různé významy. Data: materiál, z kterého vyvozujeme závěry. Fakta, z nichž dedukujeme nová fakta. Informace: znalosti, intelige...

Více

Příklad

Příklad Cluster bude klíčován podle sloupce username typu VARCHAR2(30) To znamená, že veškerá data v libovolné tabulce budou fyzicky uspořádána podle hodnoty

Více

databázový server firebird instalace,konfigurace

databázový server firebird instalace,konfigurace FireBird ( dále jen „FB“) vznikl v polovině roku 2000 na základě zdrojových textů databázového serveru InterBase, jehož je přímým nástupcem a jehož zdrojové texty uvolnila společnost Borland k voln...

Více