Ellhniko Database-SQL-RDBMS HOW-TO gia Linux (PostgreSQL
-Antikeimenostrafes Sxesiako Susthma Bashs Dedomenwn)
Al Dev (Alavoor Vasudevan)
[email protected]
v11.0, 8 Ianoyarioy 1999
Ayto to keimeno einai enas "praktikos odhgos" gia na egkatasthsete
grhgora thn SQL Database engine kai ta front end ergaleia ths se ena
susthma Unix. Mila epishs gia th Die8nh glwssa Protupwn (International
Standard language) ANSI/ISO SQL kai ejetazei ta pleonekthmata ths SQL
database engine poy exei anaptyx8ei apo to world-wide internet katw
apo ena "anoikto periballon anaptyjhs". Prokeitai gia to PWS (HOW-TO)
na egkatasthsete thn Antikeimenostrafh Sxesiakh SQL Bash epomenhs
genias "PostgreSQL" se ena susthma Unix to opoio mporei na xrhsi�
mopoih8ei san Application Database Server h san Web Database Server. H
PostgreSQL ylopoiei ena yposunolo toy Die8nous Protupoy ISO kai ANSI
SQL 1998,92,89. Ayto to keimeno dinei epishs plhrofories gia ta pro�
grammata diasundeshs me th bash opws ta Front End GUIs, gia ergaleia
RAD (Rapid Application Development), gia interfaces glwsswn programma�
tismou "C", "C++", Java, Perl, ODBC, JDBC odhgous kai ergaleia sun�
deshs ths bashs me Web kai programmata grafikhs diasundeshs. Oi plhro�
fories poy dinontai edw isxuoyn gia oles tis platformes Unix kai gia
alles baseis epishs kai 8a einai polu xrhsimes se atoma nea sto xwro
twn Basewn, ths glwssas SQL kai ths PostgreSQL. Ayto to keimeno exei
epishs odhgo ekma8hshs ths SQL, kai h suntajh SQL 8a fanei polu
xrhsimh stoys arxarioys. Oi empeiroi 8a broyn xrhsimo ayto to keimeno
san proxeiro odhgo anaforas. Gia toys foithtes, oi plhrofories poy
dinontai edw 8a toys kanei ikanous na paroyn ton phgaio kwdika apo th
sxesiakh bash dedomenwn PostgreSQL, ap' opoy mporoun na ma8oyn pws
grafetai mia sxesiakh SQL bash dedomenwn.
______________________________________________________________________
Table of Contents
1. Eisagwgh
2. Alles Morfes aytou toy keimenoy
3. Oi nomoi ths Fysikhs efarmozontai sto logismiko!
4. Ti einai h PostgreSQL ;
5. Pou mporw na th brw ;
6. H PostgreSQL yposthrizei ejairetika megales baseis, megaluteres apo 200 Gig
7. Pws mporw na empistey8w thn PostgreSQL ; To paketo Regression gia test anaptussei to ais8hma empistosunhs ston pelath
8. Grafiko programma epikoinwnias (GUI FrontEnd Tool) me thn PostgreSQL
9. Ergaleia enos Oloklhrwmenoy Systhmatos Anaptyjhs gia PostgreSQL (GUI IDE)
10. Odhgoi Diasundeshs me thn PostgreSQL
10.1 ODBC Drivers gia thn PostgreSQL
10.2 UDBC Drivers gia thn PostgreSQL
10.3 JDBC Drivers gia thn PostgreSQL
10.4 Java gia PostgreSQL
11. Perl Database Interface (DBI) Driver gia PostgreSQL
11.1 Diasundesh Perl 5 me PostgreSQL
11.2 Perl Database Interface DBI
11.2.1 TI EINAI TO DBI ;
11.2.2 Odhgos DBI gia thn PostgreSQL - DBD-Pg-0.89
11.2.3 Texnikh yposthrijh gia to DBI
11.2.4 Ti einai ta DBI, DBperl, Oraperl kai *perl;
11.2.5 Prodiagrafes DBI
11.2.6 Problhmata Metaglwttishs h alliws "Kophke stis Ejetaseis!"
11.2.7 Yposthrizetai to DBI katw apo platformes Windows 95 / NT ;
11.2.8 Ti einai to DBM; Kai giati 8a prepei na xrhsimopoiw to DBI sth 8esh toy;
11.2.9 Yposthrizetai [lt ] to tade xarakthristiko [gt ] sto DBI;
11.2.10 Xrhsimeuei ka8oloy to DBI gia programmatismo se CGI;
11.2.11 Pws petyxainw taxuteroys xronoys sundeshs me DBD Oracle kai CGI;
11.2.12 Pws epitygxanw monimes (persistent) syndeseis metaju DBI kai CGI
11.2.13 ``Otan trexw ena perl script apo thn grammh entolhs, doyleuei, alla otan to trexw apo ton httpd, apotygxanei!'' Giati;
11.2.14 Mporw na kanw multi-threading me to DBI;
11.2.15 Pws mporw na kalesw stored procedures me to DBI;
11.2.16 Pws mporw na parw tis times poy epistrefontai apo tis stored procedures me to DBI;
11.2.17 Pws mporw na dhmioyrghsw h na katastrecw mia bash dedomenwn me to DBI;
11.2.18 Pws diaxeirizetai to DBI tis times NULL ;
11.2.19 Ti einai aytes oi me8odoi func (func methods);
11.2.20 Emporikh Yposthrijh kai Ekpaideysh
12. Ergaleia Diaxeirishs ths PostgreSQL
12.1 PGACCESS - Ena grafiko ergaleio gia th diaxeirish ths PostgreSQL
12.2 Windows Interactive Query Tool gia PostgreSQL (WISQL h MPSQL)
12.3 Interactive Query Tool(ISQL) gia thn PostgreSQL - Onomazetai PSQL
12.4 MPMGR - Ergaleio Diaxeirishs Basewn gia PostgresSQL
13. Ry8mizontas pollapla koytia PostgreSQL se mia o8onh
14. Efarmoges kai Ergaleia gia thn PostgreSQL
14.1 Glwssa 4hs genias (4GL) PostgreSQL gia efarmoges me web kai bash dedomenwn - Platforma anaptyjhs AppGEN
14.2 WWW Web interface gia PostgresSQL - DBENGINE
14.3 Apache Webserver Module gia PostgreSQL - NeoSoft NeoWebScript
14.4 Oi HEITML epektaseis ths HTML ston server kai mia glwssa 4hs genias gia thn PostgreSQL
14.5 America On-line AOL Web server gia PostgreSQL
14.6 Problem/Project Tracking System Application Tool gia PostgreSQL
14.7 Metatroph arxeiwn dbase dbf se PostgreSQL
15. Ergaleio gia Sxediasmo/Ylopoihsh Web Basewn Dedomenwn gia thn PostgreSQL - EARP
15.1 Ti einai to EARP ;
15.2 Ylopoihsh
15.3 Ti xreiazeste gia na trejete to EARP
15.4 Pws doyleuei ;
15.5 Pou 8a to brw ;
16. PHP Hypertext Preprocessor, mia scripting glwssa gia thn PostgreSQL h opoia enswmatwnetai se html kai ekteleitai sto Server
16.1 Kuria xarakthristika
16.2 Anagnwrish/Eyxaristies
16.3 PHP 3 - Suntomo Istoriko
16.4 Ti mporw na kanw, loipon, me to PHP/FI ;
16.5 Ena aplo paradeigma
16.6 CGI Redirection
16.6.1 Shmeiwseis gia ton Apache 1.0.x
16.6.2 Netscape HTTPD
16.6.3 NCSA HTTPD
16.7 Trexontas to PHP/FI apo th grammh entolwn
17. Diasundesh me PostgreSQL mesw Python
17.1 Pou mporw na brw to PyGres ;
17.2 Plhrofories kai yposthrijh
18. Epikoinwnia metaju PostgreSQL kai WWW - WDB-P95
18.1 Sxetika me to wdb-p95
18.2 Einai aparaithto o diakomisths ths PostgreSQL, to pgperl, kai to httpd na einai ston idio host;
19. Programmatistikes diasyndeseis gia "C", "C++", ESQL/C kai Dyadikoi Telestes gia thn PostgreSQL
19.1 Diasundesh glwssas "C" me thn PostgreSQL
19.2 Interface glwssas "C++" gia thn PostgreSQL
19.3 ESQL/C gia PostgreSQL
19.4 Dyadikoi Telestes gia thn PostgreSQL
20. Japanese Kanji Kwdikas gia thn PostgreSQL
21. Metafora ths PostgreSQL se Windows 95/Windows NT
22. Listes allhlografias
22.1 Apokthste ena dwrean logariasmo e-mail
22.2 Agglikh Lista Allhlografias
22.3 Arxeio ths Listas Allhlografias
22.4 Ispanikh Lista Allhlografias
23. Tekmhriwsh kai Bibliografia
23.1 Odhgoi ekma8hshs kai Egxeiridia
23.2 Online Tekmhriwsh
23.3 Xrhsimh Bibliografia Anaforas
23.4 Keimena prodiagrafwn ANSI/ISO SQL - SQL 1992, SQL 1998
23.5 Suntajh ANSI/ISO SQL 1992
23.6 Suntajh ANSI/ISO SQL 1998
23.7 Odhgos ekma8hshs SQL gia arxarioys
23.8 Proswrinh epektash (extension) sto SQL92
23.9 Tmhma 0 - Apoktwntas ta keimena ISO/ANSI SQL
23.10 Tmhma 1 - Trexoysa katastash toy ISO/ANSI SQL
23.11 Tmhma 2 - ISO/ANSI SQL Foundation
23.12 Tmhma 3 - ISO/ANSI SQL Call Level Interface
23.13 Tmhma 4 - ISO/ANSI SQL Persistent Stored Modules
23.14 Tmhma 5 - Typopoihseis - Desmeuseis ISO/ANSI SQL/ ISO/ANSI SQL/Bindings
23.15 Tmhma 6 - ISO/ANSI SQL XA Interface Specialization (SQL/XA)
23.16 Part 7 - ISO/ANSI SQL Temporal
23.16.1 EISAGWGH
23.16.2 MIA MELETH- APO8HKEYSH SYGXRONWN/TREXOYSWN PLHROFORIWN
23.16.3 MELETH - APO8HKEYSH ISTORIKWN PLHROFORIWN
23.16.4 MELETH - PROBOLH (PROJECTION)
23.16.5 MELETH - SYSXETISMOS (JOIN)
23.16.6 MELETH - A8ROISTIKOI TELESTES (AGGREGATES)
23.16.7 PERILHYH
23.17 Tmhma 8 - ISO/ANSI POLYMESA SQL (SQL MULTIMEDIA - SQL/MM)
24. Texnikh yposthrijh gia thn PostgreSQL
25. Oikonomika kai Epaggelmatika 8emata
26. Lista allwn basewn dedomenwn
27. Xrhsimes symboyles gia anazhthseis sto Internet World Wide Web
28. Symperasma
29. Syxna Diatypwmenes Erwthseis sxetika me thn PostgreSQL
30. Shmeiwsh Pneymatikwn Dikaiwmatwn
31. Pararthma A - Suntajh toy ANSI/ISO SQL 1992
32. Pararthma B - Odhgos Ekma8hshs SQL gia arxarioys
32.1 Odhgos Ekma8hshs gia PostgreSQL
32.2 Deiktes Internet diey8unsewn
33. Appendix C - Odhgies gia grhgorh egkatastash Linux
______________________________________________________________________
1. Eisagwgh
O skopos aytou toy keimenoy einai na dwsei katanohtous deiktes/URLs
gia na sthsete grhgora thn PostgreSQL kai epishs na yperaspistei ta
pleonekthmata enos Anoiktou Systhmatos Phgaioy Kwdika (Open Source
Code) opws h PostgreSQL, Linux.
Ka8e susthma ypologisth ston kosmo xreiazetai mia bash dedomenwn gia
na apo8hkeuei /anakta plhrofories. O kurios logos poy xrhsimopoioume
ton ypologisth einai gia na apo8hkeuoyme, na anaktoume kai na
epejergazomaste thn plhroforia kai na ta kanoyme ola ayta grhgora,
ejoikonomwntas etsi xrono. Taytoxrona, to susthma prepei na einai
aplo, ajiopisto, oikonomiko kai polu eukolo sth xrhsh toy. H Bash
Dedomenwn einai SYSTHMA ZWTIKHS SHMASIAS gia ka8e etairia ston kosmo
mia kai se ayth apo8hkeuontai polu shmantikes plhrofories. Ta pio
dhmofilh systhmata basewn dedomenwn basizontai stis SQL prodiagrafes
toy Die8nous Organismou Protupwn ISO (International Standard
Organisation) oi opoies basizontai me th seira toys sto protypo ANSI
SQL (Amerikaniko). Oi trexoyses prodiagrafes poy xrhsimopoiountai
eyrews einai oi ISO/ANSI SQL 1992. To mellontiko protypo einai to SQL
1998/99 gnwsto kai san SQL-3 kai anaptussetai akomh. Dhmofileis baseis
opws h Oracle, h Sybase kai Informix einai systhmata basismena se ayta
ta protypa h prospa8oun na ta ylopoihsoyn.
Opws fainetai se ayto to keimeno, yparxoyn perissotera apo 20
diaforetika systhmata basewn dedomenwn, emporika/basismena sto
internet, poy xrhsimopoiountai se olo ton kosmo kai polla perissotera
8a emfanistoun sto prosexes mellon. Xwris ena protypo opws to
ANSI/ISO SQL, 8a htan polu duskolo gia ton pelath na anaptujei mia
efarmogh mia mono fora kai na th trexei se ola ta systhmata basewn
dedomenwn. O shmerinos pelaths 8elei na anaptujei mia efarmogh mia
fora xrhsimopoiwntas ISO SQL, ODBC, JDBC kai na thn poylhsei wste na
xrhsimopoieitai se ola ta diaforetika systhmata basewn dedomenwn ston
kosmo.
H dhmofilesterh pagkosmiws DWREAN bash, poy ylopoiei tmhma toy ISO
SQL, ANSI SQL/98, SQL/92 kai ANSI SQL/89 RDBMS einai h PostgreSQL. H
PostgreSQL einai h Antikeimenostrafhs Sxesiakh SQL Bash epomenhs
genias kai ta mellontika protypa ANSI SQL opws to SQL 1998 (SQL-3) kai
pera 8a asxolountai olo kai perissotero me Antikeimenostrafeis Baseis
kai tupoys dedomenwn Antikeimenoy (Object data types). H PostgreSQL
einai to mono dwrean RDBMS ston kosmo poy yposthrizei
Antikeimenostrafeis Baseis kai SQL. Ayto to keimeno 8a sas pei pws na
egkatasthsete th bash kai, epishs, ola ta paketa sxetika me baseis,
pws na egkatasthsete Web database, application database, grafika
programmata epikoinwnias kai xeirismou (front end GUIs kai programmata
interface). Sas symboyleuoyme na gracete OPWSDHPOTE tis efarmoges
basewn 100 % symbates me ta protypa ISO/ANSI SQL, ODBC, JDBC, etsi
wste h efarmogh sas na einai metafersimh se polles baseis opws oi
PostgreSQL, Oracle, Sybase, Informix klp.
Me thn PostgreSQL, 8a exete thn ychloterh poiothta kai polla alla
xarakthristika mia kai akoloy8ei to 'Anoikto Montelo Anaptyjhs Phgaioy
Kwdika' (Open Source Code development). To Anoikto montelo Anaptyjhs
Phgaioy Kwdika einai to mono toy opoioy mporeite na parete olon ton
phgaio kwdika, kai h anaptyjh ginetai sto internet apo ejairetika
megalo diktyo an8rwpinwn myalwn. H mellontikh moda problepei oti h
megaluterh anaptyjh logismikou 8a ginetai sthn apokaloumenh
"Yperlewforo Plhroforiwn" (Information Super-Highway) poy diatrexei
olo ton kosmo. Sta xronia poy erxontai, h anaptyjh toy internet 8a
einai ekrhktikh h opoia me th seira ths 8a pyrodothsei th grhgorh
yio8ethsh ths PostgreSQL apo toys pelates.
Efarmozontas tis arxes ths fysikhs (kbantomhxanikh, klassikh,
8ermodynamikh), twn ma8hmatikwn kai ths statistikhs sthn poiothta toy
logismikou, pairnete thn ychloterh poiothta logismikou mono se ena
'Anoikto Susthma Phgaioy Kwdika' opws h PostgreSQL anoigontas ton
phgaio kwdika se ena pelwrio ari8mo an8rwpinwn myalwn diasyndedemenwn
mesw ths Yperlewforoy Plhroforiwn. Oso megaluteros o ari8mos twn
an8rwpwn poy ergazontai panw s' ayto, toso kaluterh 8a einai h
poiothta toy logismikou. To Anoikto Montelo Phgaioy Kwdika 8a
empodisei epishs thn anakalych toy troxou apo thn arxh , 8a meiwsei th
diplh doyleia kai 8a einai polu oikonomiko, 8a ejoikonomei xrono sth
dianomh kai akoloy8ei toys nomoys ths monternas oikonomias gia
beltistopoihsh twn e8nikwn kai genikwn porwn. Otan mia ergasia
logismikou exei ginei apo alloys, tote DEN xreiazetai na thn kanete
eseis pali. De 8a spatalhsete ton polutimo xrono sas se kati poy exei
hdh ginei kala. Ka8ws 8a mpainoyme ston 21o aiwna, 8a yparxei allagh
ston tropo poy pairnoyme to logismiko gia xrhsh. Oi pelates 8a
protimoun ta anoikta systhmata logismikou opws h PostgreSQL, to Linux
klp.
An agorasete ektelesima programmata, de 8a parete kai ton kwdika kai
ta dikaiwmata toy. O phgaios kwdikas einai anektimhto stoixeio enw ta
ektelesima den exoyn kamia ajia. To na agorasete logismiko mporei na
anhkei sto parel8on. Gia na agorasete kalo yliko (hardware), ajizei
na jodecete xrhmata kai na parete to logismiko apo to internet.
Shmantiko shmeio einai to yliko toy ypologisth to opoio kanei ton
kurio ogko ths doyleias. To yliko einai to alogo poy kanei th doyleia
enw to logismiko apla to odhgei. To yliko twn ypologistwn einai polu
poluploko kai mono 6 apo tis 180 xwres ston kosmo mexri twra exoyn
epideijei thn ikanothta sxediasmou kai kataskeyhs plaketwn/ylikou
ypologistwn. O sxediasmos kai h kataskeyh chips ypologistwn einai
prohgmenh texnologia. Einai mia polu sun8eth diadikasia, dapanhrh,
apaitei megales ependuseis se ergostasia kai mhxanes paragwghs poy
doyleuoyn me texnologia 0.18 micron. Se ena mikro chip silikonhs
ekatommuria tranzistors/kyklwmata einai stena paketarismena. Etaireies
opws oi AMD, Intel, Cyrix, Hitachi, IBM kai alles jodecan shmantiko
ari8mo apo an8rwpoxronia gia na ginoyn kurioi ychlwn texnologiwn opws
h mikrohlektronikh (Micro-electronics) kai h nanohlektronikh (Nano-
electronics). Micro shmainei (ena-ekatommyriosto toy metroy 10^-6),
Nano shmainei (ena-disekatommyriosto toy metroy 10^-9). H trexoysa
texnologia xrhsimopoiei mikrohlektronikh gurw sta 0.35 micron
xrhsimopoiwntas agwgous aloyminioy, kai mege8h twn 0.25 micron
xrhsimopoiwntas agwgous hlektroniwn apo xalko. Sto kontino mas mellon
8a xrhsimopoih8ei texnologia twn 0.10 micron me xalko kai
nanohlektronikh gia na ftiajoyn tsipakia ypologisth. Oi agwgoi
aloyminioy 8a antikatasta8oun apo xalko sta chips twn ypologistwn,
ka8ws o xalkos einai kaluteros agwgos twn hlektroniwn. Sth
fwtoli8ografia, 8a xrhsimopoih8oun texnikes yperiwdoys aktinobolias,
aktines X h desmhs hlektroniwn gia xarajh kyklwmatwn me mellontika
mege8h mikrotera twn 0.15 micron.
Se 20 xronia apo twra, ta tsip silikonhs 8a antikatasta8oun apo
moriakous ypologistes kai biotsips poy 8a einai disekatommuria fores
grhgorotera apo ta tsip silikonhs. Ta moria einai ena sunolo atomwn.
Kai ta atoma einai ta mikra swmatidia poy apoteloun o,ti blepete se
ayto ton kosmo. Oi moriakoi ypologistes 8a xrhsimopoioun ta moria ths
ulhs san ypergrhgoroys diakoptes on/off. Otan o diakopths einai ON
shmainei 1, kai otan einai OFF shmainei 0. Ola ta programmata se ayton
ton kosmo basizontai sto dyadiko susthma.
O parakatw pinakas deixnei th proodo kai tis mellontikes taseis
proodoy twn chips twn ypologistwn.
Advancement of chip capabilities in future
********************************************
+--------------------------+---------+---------+---------+---------+--------+---------+
| Item/Year | 1997 | 1999 | 2001 | 2003 | 2012 | 2020 |
+--------------------------+---------+---------+---------+---------+--------+---------+
| Feature size(micron) | 0.25 | 0.18 | 0.15 | 0.13 | 0.05 |< 0.00001|
+--------------------------+---------+---------+---------+---------+--------+---------+
| Wafer size(mm) | 200 | 300 | 300 | 300 | 450 | Mol/Bio |
+--------------------------+---------+---------+---------+---------+--------+---------+
| Min Operating Voltage | 1.8-2.5 | 1.5-1.8 | 1.2-1.5 | 1.2-1.5 | 0.5-0.6| < 0.001 |
+--------------------------+---------+---------+---------+---------+--------+---------+
| Max power dissipation | 70 | 90 | 110 | 130 | 175 | 600 |
+--------------------------+---------+---------+---------+---------+--------+---------+
| On-chip frequencey (MHz) | 750 | 1,250 | 1,500 | 2,100 | 10,000 | > 50,000|
+--------------------------+---------+---------+---------+---------+--------+---------+
| DRAM capacity | 256 MB | 1 GB | 2 GB | 4 GB | 256 GB | > 1000GB|
+--------------------------+---------+---------+---------+---------+--------+---------+
Opws blepete, to yliko einai ychlhs texnologias kai shmantiko enw to
logismiko einai ligotero duskolh texnologia. Ara, h kataskeyh
ylikou/ylikwn-aga8wn einai zwtikhs shmasias gia thn e8nikh oikonomia!
Etaireies opws oi Compaq, Dell, Sun Microsystems, HP, IBM poy
kataskeyazoyn ypologistes einai oi kurioi syneisferontes sthn
oikonomia ths Amerikhs shmera kai sto mellon!!
Apo thn allh, ka8e xwra anejairetws ston kosmo anaptussei/ftiaxnei
logismiko. Sthn pragmatikothta, opoiosdhpote ston kosmo me ena mikro
PC xamhlou-kostoys mporei na dhmioyrghsei ena susthma mias bashs
dedomenwn san thn Oracle . Alla 8a toy epairne 10 xronia (o
diakomisths ths Oracle einai peripoy 10 an8rwpo-eth doyleia). Ena
an8rwpo-etos einai ena atomo poy doyleuei me plhrh apasxolhsh gia ena
oloklhro etos. An 10 an8rwpoi ergazontai gia 10 eth tote exoyn
jodeytei 10 an8rwpo-eth.
Baseis opws oi Oracle, Informix, Sybase, IBM DB2 (Unix) grafthkan se
glwssa "C" kai ta ektelesima dhmioyrgh8hkan metaglwttizontas ton
kwdika kai meta apostal8hkan stoys pelates. Oi baseis Oracle, Sybase,
Informix einai programmata 100 % "C"!!
Mia kai exei ginei pollh doyleia sthn PostgreSQL ta teleytaia 12
xronia, den exei nohma janadhmioyrghsoyme apo thn arxh mia allh bash
poy na ikanopoiei to protypo ANSI/ISO SQL. Einai megalo pleonekthma na
xrhsimopoihsoyme ton yparxonta kwdika kai na pros8esoyme ta
xarakthristika poy leipoyn h pros8hkes sthn PostgreSQL kai na
arxisoyme na th xrhsimopoioume amesws.
H PostgreSQL den einai apla mia dwrean bash alla ena kalhs poiothtas
'Proion Internet'. Problepetai oti h zhthsh proiontwn "Made By
Internet" 8a ayjh8ei ek8etika mia kai einai ikano na diathrei ychlh
poiothta, xamhlo kostos, ejairetika megalh bash xrhstwn kai atomwn poy
anaptussoyn kwdika. Ayta ta e8nh poy de xrhsimopoioun ta proionta
'Made By Internet' 8a xasoyn sobara thn "Epanastash World-wide
Internet" kai 8a meinoyn polu pisw apo tis alles xwres. O logos einai
oti to idio to "Internet" einai h megaluterh etaireia paragwghs
logismikou se olo ton kosmo!
2. Alles Morfes aytou toy keimenoy
Ayto to keimeno einai typwmeno se 10 diaforetikes morfes, onomastika -
DVI, Postscript, Latex, LyX, GNU-info, HTML, RTF (Rich Text Format),
Plain-text, Selides boh8eias Unix (Unix man pages) kai SGML.
� Mporeite na parete ayto to keimeno HOWTO san ena arxeio tar se
morfh HTML, DVI, Postscript h SGML apo to -
<
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/other-formats/>
� H aplh morfh keimenoy brisketai sto:
<
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO>
� Gia sxolia, parathrhseis, dior8wseis, enhmerwseis peri ths
Ellhnikhs metafrashs aytou toy HOWTO, steilte email sthn Boula
Sanida :
[email protected] h ston Eyripidh Papakwsta :
[email protected] kai enallaktika :
[email protected]
� Metafraseis se alles glwsses opws Gallika, Germanika, Ispanika,
Kinezika, Giapwnezika briskontai sto
<
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO> Opoiadhpote boh8eia
gia metafrash se alles glwsses einai eyprosdekth.
To keimeno grafthke xrhsimopoiwntas ta "ergaleia SGML" ta opoia 8a
ta breite sto - <
http://www.xs4all.nl/~cg/sgmltools/> Afou
metaglwttisete ton kwdika 8a exete entoles opws
� sgml2html databasehowto.sgml (gia na dhmioyrghsete arxeia html)
� sgml2rtf databasehowto.sgml (gia na dhmioyrghsete arxeia RTF)
� sgml2latex databasehowto.sgml (gia na dhmioyrghsete arxeia
latex)
To keimeno brisketai sto -
� <
http://sunsite.unc.edu/LDP/HOWTO/PostgreSQL-HOWTO.html>
Mporeite epishs na breite to keimeno sta parakatw mirrors sites -
� <
http://www.caldera.com/LDP/HOWTO/PostgreSQL-HOWTO.html>
� <
http://www.WGS.com/LDP/HOWTO/PostgreSQL-HOWTO.html>
� <
http://www.cc.gatech.edu/linux/LDP/HOWTO/PostgreSQL-HOWTO.html>
� <
http://www.redhat.com/linux-info/ldp/HOWTO/PostgreSQL-HOWTO.html>
� Alla mirror sites konta sas (network-address-wise) mporeite na
breite sto <
http://sunsite.unc.edu/LDP/hmirrors.html> dialejte ena
site kai phgainete ston katalogo /LDP/HOWTO/PostgreSQL-HOWTO.html
Gia na deite to keimeno se morfh dvi, xrhsimopoihste to programma
xdvi. To programma xdvi brisketai sto paketo tetex-xdvi*.rpm sto
Redhat Linux to opoio brisketai sta koympia ControlPanel |
Applications | Publishing | TeX menu. Gia na diabasete keimeno dvi
dwste thn entolh -
xdvi -geometry 80x90 howto.dvi
kai allajte to mege8os toy para8uroy me to pontiki. Deite th selida
boh8eias gia to xdvi.
Gia na metakinh8eite xrhsimopoihste ta belakia, ta plhktra Page Up,
Page Down, mporeite na xrhsimopoihsete epishs ta grammata 'f', 'd',
'u', 'c', 'l', 'r', 'p', 'n' gia na metakinh8eite pros ta panw, katw,
sto kentro, sthn epomenh selida, sthn prohgoumenh selida klp.
Gia na apenergopoihsete to expert menou pathste 'x'. Mporeite na
diabasete arxeia postscript xrhsimopoiwntas to 'gv' (ghostview) h
'ghostscript'. To programma ghostscript brisketai sto paketo
ghostscript*.rpm kai to programma gv sto paketo gv*.rpm sto Redhat
Linux to opoio brisketai sta koympia twn menou ControlPanel |
Applications | Graphics. To programma gv einai polu pio filiko sto
xrhsth apo to ghostscript. To ghostscript kai to gv einai epishs
dia8esima kai se alles platformes opws se OS/2, Windows 95 kai NT,
blepete ayto to keimeno akomh kai se aytes tis platformes.
Gia na diabasete keimeno postscript dwste thn entolh -
gv howto.ps
Gia na xrhsimopoihsete to ghostscript thn entolh -
ghostscript howto.ps
PROSOXH: To keimeno ayto einai megalo, o synolikos ari8mos selidwn (se
postscript) an typw8ei 8a einai peripoy 113 selides sta Agglika (sta
ellhnika 8a prepei na einai perissoteres).
Mporeite na diabasete to keimeno se morfh HTML xrhsimopoiwntas
Netscape Navigator, Microsoft Internet explorer, Redhat Baron Web
browser h opoiodhpote apo toys alloys 10 web browsers.
Mporeite na diabasete thn ejodo toy se latex, LyX xrhsimopoiwntas to
LyX, ena X-Windows grafiko programma diasundeshs me latex.
3. Oi nomoi ths Fysikhs efarmozontai sto logismiko!
Se ayto to kefalaio, 8a sas deijoyme pws h episthmh paizei shmantiko
rolo sth dhmioyrgia diaforwn antikeimenwn opws to logismiko, to
sumpan, ta atoma, thn energeia akoma kai esas toys idioys! Ayto to
kefalaio 8a sas deijei epishs giati h gnwsh ths episthmhs einai polu
shmantikh PRIN na jekinhsete na xrhsimopoieite ta proionta ths. Ta
antikeimena perilambanoyn o,tidhpote - gia paradeigma h PostgreSQL, o
xronos, h maza, h energeia, oi planhtes, o hlios, to feggari, ta
asteria, oi galajies, oi an8rwpoi klp... einai antikeimena
dhmioyrghmata ths episthmhs. Ayto to kefalaio perigrafei epishs pws
oi nomoi ths episthmhs kai h statistikh eynooun ta systhmata open-
source code opws h PostgreSQL kai to Linux. Ka8ws h taxuthta sto
diadiktyo ayjanetai ka8hmerina, kai to diadiktyo ginetai oloena kai
pio sta8ero, ta systhmata open-source code gnwrizoyn grhgorh anaptyjh.
Kai an oi statistikoi kanones kai oi nomoi ths fysikhs einai swstoi,
ta systhmata closed source-code 8a afanistoun telika apo ton planhth.
Oi paragrafoi poy akoloy8oun parakatw 8a sas deijoyn - "poso aperanth
einai h episthmh, poso shmantikh einai gia ton an8rwpo kai pws epidra
se erga logismikou opws h PostgreSQL, to Linux".
To na anaptujete ena project opws h PostgreSQL, apaitei energeia kai
xrono, ara h PostgreSQL einai proion energeias kai xronoy. Mia kai h
energeia kai o xronos mporoun na ejhgh8oun mono episthmonika, yparxei
mia amfidromh sxesh metaju ths fysikhs kai twn ergwn logismikou opws h
PostgreSQL, to Linux.
Oi episthmonikoi nomoi (Fysikh) efarmozontai pantou, synexeia, se o,ti
kanete akomh kai sta erga logismikou opws systhmata basewn dedomenwn.
H Fysikh efarmozetai akomh kai otan milate (hxhtika kumata), perpatate
(tribh metaju edafoys kai pelmatos), diabazete ena biblio h grafete
logismiko. Polloi kladoi ths episthmhs opws h fysikh, h xhmeia klp.
sygxwneuontai se mia eyreia perioxh, ta Ma8hmatika (epishs gnwsta kai
san th Basilissa olwn twn Episthmwn). Otidhpote se ayto ton kosmo
exei ba8ies rizes sta ma8hmatika, symperilambanomenhs ths PostgreSQL.
H PostgreSQL xrhsimopoiei th 'Monterna Algebra' ,ena polu mikro
parakladi twn ma8hmatikwn . H 'Monterna Algebra' asxoleitai me th
'8ewria Synolwn', th 'Sxesiakh Algebra', episthmh twn Groups, Rings,
Collections, Sets, Unions, Intersections, Exclusions, Domains, Lists,
klp...
Logismiko opws h PostgreSQL yparxei shmera logw ths energeias kai toy
xronoy. H energeia einai ayth poy dhmiourghse ton kosmo, ton
an8rwpino egkefalo kai polla alla pragmata! H maza kai h energeia
einai h IDIA ONTOTHTA! To gegonos oti h maza kai h energeia einai to
idio pragma htan agnwsto stoys an8rwpoys 100 xronia prin!
Oi kyceles ston an8rwpino egkefalo katanalwnoyn energeia ka8ws
epejergazontai (paragoyn logismiko) metatrepontas th xhmikh energeia
se 8ermikh energeia. Akomh kai twra poy diabazete ayth thn paragrafo,
oi kyceles ston egkefalo sas kaine benzinh kai xrhsimopoioun thn
energeia. Gi' ayto STAMATHSTE NA DIABAZETE TWRA! H energeia twn
neyrwnwn (kyceles ston egkefalo) mporei na metrh8ei sta ergasthria.
Gia paradeigma, yparxoyn polla organa opws oi "Anixneytes Yematwn" kai
alla iatrika organa poy mporoun na metrhsoyn thn energeia poy
katanalwnei o egkefalos.
Ola ayta yponooun oti o an8rwpinos egkefalos einai mia 8ermodynamikh
phgh energeias. Epeidh o an8rwpos einai mia 8ermodynamikh phgh
energeias, oi nomoi ths 8ermodynamikhs efarmozontai ston egkefalo kai
etsi h 8ermodynamikh exei emmesa apotelesmata se logismiko opws h
PostgreSQL.
Opws se ka8e episthmh, einai adunato na xtisete opoiodhpote susthma h
8ewria (symperilambanomenoy enos systhmatos basewn dedomenwn) poy na
einai 100 % teleio kai xwris sfalmata. Einai sa na kynhgate enan
anemostrobilo , de 8a kataferoyme POTE na ftiajoyme to teleio susthma
h 8ewria. Leptomereis ma8hmatikes ejiswseis/syzhthseis gia thn
apodeijh ths uparjhs enos 'teleioy systhmatos' einai adunato na ginoyn
edw ka8ws jeperna to skopo aytou toy keimenoy.
Kai mia tetoia ma8hmatikh syzhthsh asxoleitai me ton apeiro ari8mo
diastasewn poy yparxoyn sth fush. Dystyxws, oi an8rwpoi mporoun na
doyn h na niwsoyn 4 diastaseis alla ta ma8hmatika mporoun na
ejereynhsoyn eukola kai alles diastaseis.
Alles diastaseis einai 'apeira mikroteres' apo ta atoma kai ta idia ta
atoma einai me th seira toys polu mikra kai to an8rwpino mati de
mporei na ta jexwrisei! Ta Ma8hmatika einai polu isxyra mia kai
mporoun na analusoyn kai na ejhghsoyn th gennhsh/ 8anato olhs ths
yfhlioy. O kosmos mas exei sxedon mhdeniko mege8os an ton koitajete
apo allo sumpan kai antistrofa. Ayto shmainei oti o kosmos mas den
einai oratos (den yparxei) gia ta atoma poy briskontai se allo sumpan.
Kai antistrofa! 8ewrhtika, mporeite na bgeite apo ton kosmo mas kai
na tajidecete megales apostaseis (disekatommuria eth fwtos) se
elaxisto xrono kai na janampeite ston kosmo mas se ena diaforetiko
shmeio toy xwroxronoy! H apostash metaju toy kosmoy mas kai twn allwn
kosmwn einai pragmatika mhdenikos!
Akomh kai an yparxei apeiros ari8mos diastasewn, mporoun oles na
prokucoyn/ dhmioyrgh8oun apo ena mikro ari8mo KYRIWN diastasewn.
Apeiros ari8mos diastasewn mporoun na syndyastoun kai na katalhjoyn
se kuries diastaseis. Oi kuries diastaseis apla aporrofoun tis alles
diastaseis xwris aytes na katastrefontai. Oi ma8hmatikoi
xrhsimopoioun aytes tis kuries diastaseis gia na katanohsoyn th
gennhsh kai to 8anato toy sumpantos. O kosmos ston opoio zeite shmera
dhmioyrgh8hke me to BIG BANG disekatommuria xronia prin (sxedon 20
disekatommuria xronia prin) to opoio dhmioyrgh8hke apo
allhlepidraseis atomikwn swmatidiwn allwn diastasewn. Ligo prin to
big bang yphrxe ena polu mikro shmeio opoy to mhkos, to platos kai to
ucos htan MHDEN (dhladh, o kosmos mas den yphrxe ekei!!) enw yphrxe to
ypoloipo sumpan kai oi kuries diastaseis. Ekeinh th xronikh stigmh den
yphrxan atoma, asteria, planhtes kai galajies! Ta atoma mesa sto swma
sas den yphrxan ekei! Exoyn ginei, loipon, tosa polla pragmata PRIN
na gennh8eite!
To Big bang kai epomenws kai h gennhsh toy kosmoy mas proklh8hke apo
liga atoma kuriwn diastasewn. KAPOIOS (kati;) prokalese th syntribh
elaxistwn polu mikrwn atomwn allwn diastasewn me apotelesma th
dhmioyrgia toy kosmoy mas, kai gennh8hkan nees diastaseis xronoy,
mhkoys, platoys, ucoys ! Blepoyme to xeri kapoioy se ayth th
diadikasia. Ayth h diadikasia den einai kai polu katanohth apo ton
an8rwpo.
O an8rwpos prospa8ei na dhmioyrghsei enan allo kosmo sto ergasthrio
prosomoiwnontas to gegonos big bang (brisketai ypo kataskeyh enas
terastios epitaxynths sthn Eyrwph, allh mia kataskeyh sto Ntalas, h
Amerikh stamathse logw perikopwn ston proupologismo). Yparxoyn atoma
allwn diastasewn, opws exoyme ki emeis atoma ston diko mas kosmo.
8ewrhtika, mporeite na dhmioyrghsete/paragete apeiro ari8mo kosmwn!
Ayth h diadikasia einai antistrepth, dhladh o kosmos mas mporei na
syrriknw8ei se merika atoma allwn diastasewn! Einai paromoio me to na
gennh8hkate apo duo mikroskopikes kyceles oi opoies 8a sygkroystoun
gia na dhmioyrghsoyn mia mono kycelh. Ayth h monh mikroskopikh
kycelida diaire8hke kai pollaplasiasthke se 6 trisekatommuria
kycelides mexri na ginei enas an8rwpos ucoys 6 podia (dhladh eseis!).
Yparxoyn merikes omoiothtes metaju an8rwpoy kai sumpantos, to sumpan
gennietai kai argotera pe8ainei opws kai oi an8rwpoi. Mia kai einai
adunath mia TELEIA katastash (opws kai h APOLYTWS MH TELEIA
katastash), oi kosmoi san toys dikous mas genniountai kai pe8ainoyn
argotera me mia kyklikh diadikasia. ALLA den yparxei TELEIOS 8anatos,
mono metasxhmatismos epitrepetai apo thn episthmh! O kosmos mas
megalwnei me taxutato ry8mo, den einai statikos, anti8eta einai polu
dynamikos. Aytos o kosmos 8a synexisei na megalwnei wspoy na
paremblh8ei kati poy 8a katastrecei ton kosmo mas efarmozontas
dynameis me ejwterikes diastaseis poy 8a aporrofhsoyn kai 8a
ejafanisoyn ton kosmo mas! Yparxoyn duo pi8anothtes - na apomakryn8ei
h maza apo ton kosmo mas mesw twn maurwn trypwn (argh diadikasia), h
na proste8ei kai allh maza ston kosmo mas mesw twn asprwn trypwn
(grhgorh diadikasia megalhs sugkroyshs). Mporei na yparxoyn
ekatommuria kosmoi alla ligoi einai aytoi poy dhmioyrgh8hkan apo
kuries diastaseis. Den exete ftiaxtei mono apo atoma aytou toy kosmoy
alla kai apo atoma allwn diastasewn! Stis maures trupes ta atoma kai
ta swmatidia toy kosmoy mas menoyn egklwbismena kai metasxhmatizontai
kai metatrepontai teleiws se swmatidia allwn diastasewn! Sto kentro
mias maurhs trupas o xronos, to platos kai to ucos einai mhden! Kai h
maurh trupa einai h porta E3ODOY/EISODOY pros kai apo alloys kosmoys.
Portes EISODOY/E3ODOY pros alloys kosmoys mporoun na anoijoyn pantou,
akomh kai mesa sto swma sas! Mporei na yparxei apeiros ari8mos
xrwmatwn, glwsswn ypologisth, sxediwn tsip ypologisth kai 8ewries alla
DEN MPOREI na yparjei ENA MONO TELEIO xrwma, glwssa ypologisth, sxedio
h susthma! Ayto poy mporeite na exete einai mono ena SXEDON TELEIO
xrwma (euros kumatos), susthma, bash dedomenwn h 8ewria! H fush einai
opws ena Kaleidoskopio.
Syndyazontas thn energeia ekatommyriwn an8rwpwn se olo ton kosmo mesw
internet, einai dynato na epiteyx8ei ena SXEDON TELEIO susthma
(symperilambanomenoy enos systhmatos basewn dedomenwn). H energeia toy
ka8e an8rwpoy atomika einai elaxisth, alla diasyndeontas ena megalo
ari8mo an8rwpwn, h synolikh energeia 8a einai terastia gia na
dhmioyrghsei ena sxedon teleio susthma. Oi an8rwpoi einai onta me
periorismenh energeia kai apo8emata, kai polu syxna se aytous
ofeilontai la8h apo apla mexri kai polu sobara. Epeidh h tash mas gia
la8h poikillei se ka8e an8rwpo analoga me tis idiaiteres
epidejiothtes, th sygkekrimenh empeiria poy exei o ka8enas kai tis
sygkyries ths sygkekrimenhs stigmhs, h anakalych kai h elattwsh twn
la8wn logismikou (bugs) poy dhmioyrgountai apo kapoio an8rwpo
dieykolunetai me th sygkentrwsh pollwn ejypnwn an8rwpwn-myalwn gia na
antimetwpisoyn to sygkekrimeno problhma. Perissotera atoma
synepagetai perissoteres an8rwpowres gia kwdika kai thn antistoixh
leitoyrgia toy.
Einai jeka8aro oti to internet mporei na diasyndesei ena terastio
ari8mo an8rwpwn, opoy oloi mazi dia8etoyn polu energeia kai xrono. Me
to syndyasmo toys mporoun na parax8oun proionta logismikou ychloterhs
poiothtas se polu ligotero xrono se sugkrish me emporikes etaireies.
Akomh kai megales etaireies opws h Microsoft, h IBM de mporoun na
yperisxusoyn kai na agnohsoyn toys nomoys ths Fysikhs alla 8a
YPOTAX8OYN telika se aytous!
Shmera, yparxoyn toses polles baseis dedomenwn se olo ton kosmo poy
stoxeuoyn mono stis prodiagrafes ANSI/ISO SQL. Oi an8rwpoi den prepei
na xaramizoyn to xrono toys gia na dhmioyrghsoyn tosa polla
PAROMOIA/OLOIDIA paketa logismikou enw yparxoyn tosoi alloi tomeis
ths episthmhs poy xreiazontai prosoxh. To symperasma einai to ejhs :
ejaitias twn nomwn ths episthmhs, ta 'anoixta systhmata phgaioy
kwdika' opws h PostgreSQL, to Linux 8a einai panta polu kalutera apo
ta 'kleista systhmata phgaioy kwdika' kai ayto einai dynato na
apodeixtei kai episthmonika.
4. Ti einai h PostgreSQL ;
H PostgreSQL ekdosh 6.4 einai mia dwrean bash, me thn opoia sas
dinetai olos o phgaios kwdikas kai einai ena Susthma
Antikeimenostrafhs-Sxesiakh Bashs Dedomenwn sxedon symbath me
(plhsiazei olo kai perissotero) me to ANSI SQL1998,92,89 kai trexei se
diaforetikes platformes hardware kai Leitoyrgika systhmata.
Merikes fores bgainoyn se kykloforia ektaktes dior8wseis, mpalwmata (patches) gia dior8wseis
la8wn meta thn ekdosh GA PostgreSQL. Mporeite na efarmosete ta proairetika patches
analoga me tis anagkes ths efarmoghs sas. Akoloy8hste ta parakatw
bhmata gia na efarmosete ta patches -
Phgainete ston katalogo poy brisketai o kwdikas ths postgresql
cd /usr/src/postgresql6.3.1
patch -p0 < patchfile
make clean
make
Deite epishs th selida boh8eias grafontas 'man patch'
Ta arxeia gia patch briskontai sto
� PostgreSQL patches : <
ftp://ftp.postgresql.org/pub/patches>
O apolytos skopos kai o telikos stoxos ths PostgreSQL einai ginei 100
% symbath me thn ANSI/ISO SQL kai na ginei epishs h noumero ENA
Anoikth Genikh Bash ston kosmo. H PostgreSQL epishs 8a odhghsei,
diey8unei, elegjei, parakoloy8hsei kai ypagoreusei to mellon ths
ANSI/ISO SQL. Ayto giati, h ylopoihsh kai oi idees ginontai prwta
sthn PostgreSQL kai epeita enswmatwnontai sthn ANSI/ISO SQL.
O Informix Universal server (ekdo8hke to 1997) basizetai se
prohgoumenh ekdosh ths PostgreSQL epeidh h Informix agorase thn
Illustra Inc. kai enopoih8hke me thn Informix. H bash Illustra htan
plhrws basismenh sthn Postgres (prohgoumenh ekdosh ths PostgreSQL).
H PostgreSQL einai mia epektash toy systhmatos diaxeirishs ths bashs
dedomenwn POSTGRES, ena epomenhs genias protypo ereynas DBMS. Enw h
PostgreSQL diathrei to dynamiko montelo dedomenwn kai toys plousioys
tupoys dedomenwn ths POSTGRES, antika8ista thn glwssa erwthsewn
PostQuel me ena ektetameno yposunolo ths SQL.
H anaptyjh ths PostgreSQL ginetai apo mia omada programmatistwn sto
Internet poy einai oloi grammenoi sth lista allhlografias anaptyjhs
ths PostgreSQL. Syntonisths ths omadas einai o Marc G. Fournier
�
[email protected]
Ayth h omada einai ypeu8ynh gia olh thn trexoysa kai mellontikh
anaptyjh ths PostgreSQL. Fysika, o idios o pelaths basewn
dedomenwn einai aytos poy anaptussei thn PostgreSQL! To fortio ths
anaptyjhs dianemetai se ena polu megalo ari8mo telikwn xrhstwn
basewn sto internet.
Oi syggrafeis ths PostgreSQL 1.01 einai oi Andrew Yu kai Jolly Chen.
Polloi alloi syneiseferan se ayth th metafora, to testarisma, thn
aposfalmatwsh kai thn epektash toy kwdika. O arxikos kwdikas ths
Postgres, ap' opoy proekyce h PostgreSQL, htan h prospa8eia pollwn
apofoitwn spoydastwn, metaptyxiakwn, kai proswpikou programmatistwn
poy doulecan katw apo thn epiblech toy Ka8hghth Michael Stonebraker
sto Panepisthmio ths Kalifornia, sto Berkeley.
To arxiko onoma toy logismikou sto Berkeley htan Postgres. Otan
proste8hke h leitoyrgikothta gia SQL to 1995, to onoma allaje se
Postgres95. To onoma allaje pali sto telos toy 1996 se PostgreSQL.
Ekatommuria PostgreSQL exoyn egkatasta8ei ws diakomistes basewn
dedomenwn, Web database serverskai Application data servers. Einai
polu proxwrhmenh, kai einai antikeimenostrafhs sxesiakh bash
dedomenwn (ORDBMS).
H PostgreSQL mporei na apo8hkeusei perissoteroys tupoys dedomenwn apo
toys paradosiakous tupoys dedomenwn opws integer, characters, klp. -
mporeite na dhmioyrghsete toys dikous sas orismenoys tupoys,
synarthseis, klhronomikothta klp. H PostgreSQL trexei se Solaris,
SunOS, HPUX, AIX, Linux, Irix, Digital Unix, BSDi,NetBSD, FreeBSD, SCO
unix, NEXTSTEP, Unixware kai se opoiodhpote tupo Unix. H metafora ths
se Windows 95/NT einai se ejelijh.
� Titlos: PostgreSQL SQL RDBMS Database (Susthma
Diaxeirishs Antikeimenostrafous Sxesiakhs Bashs Dedomenwn)
� Trexoysa ekdosh: 6.4
� Xronologia: H PostgreSQL einai 12 xronwn. Anaptussetai apo to
1985
� Syggrafeis: Anaptussetai apo
ekatommuria/panepisthmia/etaireies sto internet gia ta teleytaia 12
xronia
H PostgreSQL kai ta sxetika kommatia toy keimenoy ypokeintai sthn
parakatw PNEYMATIKH IDIOKTHSIA.
PostgreSQL Susthma Diaxeirishs Bashs Dedomenwn
Pneymatikh Idiokthsia (c) toy panepisthmioy ths California
Adeia gia xrhsh, antigrafh, metabolh, kai dianomh aytou toy logismiko kai ths
tekmhriwshs toy gia opoiodhpote skopo, xwris telh, kai xwris grapth symfwnia
parexetai, me thn proupo8esh oti to shmeiwma pneymatikhs idiokthsias kai
ayth kai oi parakatw duo paragrafoi 8a emfanizontai se oles tis kopies.
ME KANENAN TROPO, DEN 8A 8EWRH8EI TO PANEPISTHMIO THS KALIFORNIA NOMIKA YPEY8YNO
GIA AMESH, EMMESH, EIDIKH, TYXAIA, H PARAGWMENH ZHMIA, SYMPERILAMANOMENHS KAI THS
APWLEIAS KERDWN POY PROEKYYE APO THN XRHSH AYTOY TOY LOGISMIKOY KAI THS
TEKMHRIWSHS TOY, AKOMA KAI AN TO PANEPISTHMIO THS KALIFONIA EXEI EIDOPOIH8EI GIA
THN PI8ANOTHTA MIAS TETOIAS ZHMIAS.
TO PANEPISTHMIO THS KALIFORNIA EIDIKA APARNEITAI KA8E EGGYSHSH, SYMPERILAMBANOMENHS,
ALLA OXI PERIORISMENHS MONO SE AYTHN, THS YPONOOYMENHS EGGYHSHS XRHSHS, KAI XRHSHS
GIA KAPOIO SYGKEKRIMENO SKOPO. TO LOGISMIKO POY PAREXETAI EDW EINAI SE BASH "WS EXEI"
KAI TO PANEPISTHMIO THS KALIFORNIAS DEN EXEI YPOXREWSH GIA PAROXH SYNTHRHSHS, ENHMERWSEWN,
EMPLOYTISMWN, H TROPOPOIHSEWN.
5. Pou mporw na th brw ;
Mporeite na agorasete to CDROM Redhat Linux, Debian Linux h to
Slackware Linux poy periexoyn hdh thn Postgresql se morfh paketoy (kai
o phgaios kwdikas kai ta ektelesima) apo ta :
� Linux System Labs Web site: <
http://www.lsl.com/> 7 (U.S.
dolaria)
� Cheap Bytes Inc Web site: <
http://www.cheapbytes.com/> 7 (U.S.
dolaria)
� Debian Kentriko Web site : <
http://www.debian.org/vendors.html>
O organismos PostgreSQL poyla epishs ena 'PostgreSQL CDROM' poy
periexei olon ton phgaio kwdika kai ektelesima gia polla leitoyrgika
systhmata Unix kai plhrh tekmhriwsh.
� To CDROM ths PostgreSQL 8a to breite apo to kentriko Web site ths
sto : <
http://www.postgresql.org> gia 29 (Amerikanika dolaria)
Dianomh ths PostgreSQL mono me ektelesima:
� Mporeite na trejete thn PostgreSQL xwris na metaglwttisete ton
kwdika. Egkatasthste ta ektelesima gia Intel-Linux apo to arxeio
<
ftp://www.redhat.com/pub/contrib/i386/> postgresql-6.4.i386.rpm.
Ayto einai ena redhat 'rpm' paketo kai periexei kai ton kwdika kai
ta ektelesima gia thn PostgreSQL.
� Site me ektelesima gia Solaris, HPUX, AIX, IRIX, Linux :
<
ftp://ftp.postgresql.org/pub/bindist> An metaglwttisete ton kwdika
gia opoiadhpote platforma, parakalw steilte to sto site, mporei na
einai xrhsimo gia toys ypoloipoys.
� ftp site : Parte ta ektelesima gia Intel-Linux apo to arxeio
<
ftp://ftp.redhat.com/pub/contrib/i386/> postgresql-6.4.i386.rpm.
Ayto einai ena redhat 'rpm' paketo kai periexei kai ton kwdika kai
ta ektelesima gia thn PostgreSQL.
WWW Web sites:
� Kentriko Web site: <
http://www.postgresql.org/>
� Deutero Web site: <
http://logical.thought.net/postgres95/>
� <
http://www.itm.tu-clausthal.de/mirrors/postgres95/>
� <
http://s2k-ftp.cs.berkeley.edu:8000/postgres95/>
� <
http://xenium.pdi.net/PostgreSQL/>
� <
http://s2k-ftp.cs.berkeley.edu:8000/postgres95/>
Ta ftp sites paroysiazontai parakatw :-
� Primary FTP: <
ftp://ftp.postgresql.org/pub>
� Secondary FTP: <
ftp://ftp.chicks.net/pub/postgresql>
� <
ftp://ftp.emsi.priv.at/pub/postgres/>
� <
ftp://ftp.itm.tu-clausthal.de/pub/mirrors/postgres95>
� <
ftp://rocker.sch.bme.hu/pub/mirrors/postgreSQL>
� <
ftp://ftp.jaist.ac.jp/pub/dbms/postgres95>
� <
ftp://ftp.luga.or.at/pub/postgres95>
� <
ftp://postgres95.vnet.net:/pub/postgres95>
� <
ftp://ftpza.co.za/mirrors/postgres>
� <
ftp://sunsite.auc.dk/pub/databases/postgresql>
� <
ftp://ftp.task.gda.pl/pub/software/postgresql>
� <
ftp://xenium.pdi.net/pub/PostgreSQL>
O phgaios kwdikas ths PostgreSQL einai epishs dia8esimos se ola ta
mirror sites toy sunsite unc (sunolo peripoy 1000 sites se olo ton
kosmo). Brisketai epishs sth dianomh toy Red Hat Linux sto arxeio
/pub/contrib/i386/postgresql.rpm .
� Gia th lista twn mirror sites phgainete sto
<
ftp://sunsite.unc.edu>
6. H PostgreSQL yposthrizei ejairetika megales baseis, megaluteres
apo 200 Gig
H apodosh twn 32-bit mhxanwn cpu 8a pesei grhgora otan to mege8os ths
bashs jeperasei ta 5 gig. Mporeite na trejete bash twn 30 gig se mia
32-bit cpu alla h apodosh de 8a einai kai polu entypwsiakh. Yparxoyn
periorismoi poy epiballontai apo to mege8os ths mnhmhs RAM (megisto 2
gig mono), periorismoi apo ta mege8h toy systhmatos arxeiwn kai epishs
apo to leitoyrgiko susthma.
An xreiazetai na xrhsimopoihsete ejairetika megales baseis, sas
symboyleuoyme na xrhsimopoihsete mhxanes twn 64-bit opws Digital Alpha
cpu, Sun Ultra-sparc 64-bit cpu, Silicon graphics 64-bit cpu, Intel
Merced IA-64 cpu, mhxanes HPUX 64bit, IBM 64-bit. Metaglwttiste thn
PostgreSQL se mia 64-bit cpu kai 8a mporei na yposthrizei terasties
baseis kai megala queries. H apodosh ths PostgreSQL gia erwthseis se
megaloys pinakes kai baseis 8a einai polles fores taxuterh apo thn
PostgreSQL se mhxanes me cpu 32-bit. To pleonekthma twn mhxanwn 64-bit
einai oti h deiktodothsh toy xwroy mnhmhs einai polu megalh kai to
leitoyrgiko susthma mporei na yposthrijei systhmata megalwn arxeiwn,
parexei kaluterh apodosh me megales baseis, yposthrizei polu
perissoterh mnhmh (RAM), exoyn perissoteres dynatothtes klp.
7. anaptussei to ais8hma empistosunhs ston pelath Pws mporw na emp�
istey8w thn PostgreSQL ; To paketo Regression gia test
To paketo Regression gia test (src/test/regress) perilambanetai sth
dianomh kai afhste ton ypologisth sas na epalh8eusei tis stantar
leitoyrgies SQL kai tis dynatothtes epektashs ths PostgreSQL. To
paketo gia test periexei hdh ekatontades SQL test programmata.
8a prepei na xrhsimopoihsete th dunamh toy ypologisth gia na elegjete
thn PostgreSQL, anti na xrhsimopoihsete th dunamh toy an8rwpinoy
egkefaloy. Oi ypologistes mporoun na ektelesoyn test gia to logismiko
regression ekatommuria h akomh kai disekatommuria fores grhgorotera
apo oti oi an8rwpoi.
Sto prosexes mellon h taxuthta twn ypologistwn 8a einai arketa
trisekatommuria fores grhgoroteroi apo ton an8rwpino egkefalo!
Etsi, exei nohma na xrhsimopoihsoyme th dunamh toy ypologisth gia na
elegxoyme logismiko.
Mporeite na pros8esete kai alla test se periptwsh poy to xreiazeste,
kai mporeite na ta steilete sto kentriko web site ths PostgreSQL an
nomizete oti 8a einai xrhsimo se alloys sto internet. To paketo
Regression gia test enisxuei thn empistosunh toy pelath sthn
PostgreSQL kai eykolunei th grhgorh efarmogh ths PostgreSQL se
systhmata paragwghs.
To paketo Regression gia test mporei na 8ewrh8ei san ena "POLY
STA8ERO" texniko keimeno symfwnhmeno amoibaia metaju twn
programmatistwn kai twn telikwn xrhstwn. Oi programmatistes ths
PostgreSQL xrhsimopoioun ektetamena to paketo regression gia test kata
thn periodo ths anaptyjhs kai epishs prin thn ekdosh toy logismikou
sto koino gia na diasfalisoyn thn kalh poiothta.
Oi dynatothtes ths PostgreSQL antikatroptizontai sto paketo gia test
regression. Se periptwsh poy mia dynatothta, suntajh h xarakthristiko
den perilambanetai sto paketo den shmainei pws kaluptetai anagkastika
apo thn PostgreSQL. Mporeite na to elegjete, parola ayta, eseis kai na
enswmatwsete to test sas sto paketo.
8. Grafiko programma epikoinwnias (GUI FrontEnd Tool) me thn Post�
greSQL
H dianomh ths PostgreSQL perilambanei mia biblio8hkh se Tcl/Tk, poy
onomazetai 'pgTcl'. H Tcl/Tk einai ena ergaleio gia grhgorh anaptyjh
efarmogwn kai mia polu dynath scripting glwssa. Anaptussete mia fora
thn efarmogh sas kai thn trexete pantou : se NT, Win 95, Linux, OS/2
kai ola ta systhmata unix. Tcl einai ta arxika toy 'Tool Command
Language' kai Tk toy 'Tool Kit'. Yparxei ena oloklhrwmeno periballon
anaptyjhs (IDE - integrated development environment) gia thn Tcl/Tk
poy legetai SpecTcl. Koitajte gi ayto to rpm paketo sth dianomh Redhat
linux h sto sunscript site poy dinetai parakatw.
Synistoume thn Perl gia glwssa programmatismou mia kai einai h pio
diadedomenh glwssa, polu isxyrh kai diati8etai gia ola ta mhxanhmata
kai oles tis platformes leitoyrgikwn. Sas symboyleuoyme na
xrhsimopoihsete Perl-Tk h Perl-Qt h C++ QtEZ h C++ Lesstiff. O
syndyasmos Perl, C kai Tk 8a ikanopoihsei tis anagkes twn perissoterwn
projects, lambanontas ypoch to dia8esimo xrono, thn taxuthta twn
ektelesimwn kai thn eykolia programmatismou. Shmeiwste oti ta
programmata se Java trexoyn polu arga. Akomh kai ta programmata poy
einai grammena se C++ trexoyn pio arga apo ta programmata poy
grafontai se C. Ta programmata se C ektelountai taxutera apo ta
antistoixa programmata grammena se opoiadhpote allh glwssa
programmatismou.
H Perl xrhsimopoieitai gia ton programmatismo toy 90 % twn internet
scripts ston kosmo. Etsi 8a exete mono mia glwssa, thn "Perl", gia
oles sas tis anagkes, se efarmoges oso kai sto internet. Deite to
Perl Database Interface aytou toy keimenoy sto ``''
8a prepei na melethsete ta dynata shmeia ths Perl se sugkrish me thn
Tcl/Tk prin jekinhsete kapoio project se Tcl. H Tcl/TK dinetai
synh8ws me ka8e linux cdrom. Mporeite epishs na th breite sta sites -
� Tcl/Tk <
http://www.scriptics.com>
� Antikeimenostrafes extension ths Tcl poy onomazetai INCR sto
<
http://www.tcltk.com>
� Visual TCL site <
http://www.neuron.com>
� Visual TCL Redhat rpm sto
<
ftp://ftp.redhat.com/pub/contrib/i386/visualtcl*.rpm>
� <
http://sunscript.sun.com/>
� <
http://sunscript.sun.com/TclTkCore/>
� <
ftp://ftp.sunlabs.com/pub/tcl/tcl8.0a2.tar.Z>
� Biblia anaforwn: Polla texnika biblia gia TCL/TK diati8entai sthn
agora.
9. Ergaleia enos Oloklhrwmenoy Systhmatos Anaptyjhs gia PostgreSQL
(GUI IDE)
Koitajte ta parakatw ergaleia anaptyjhs ta opoia mporeite na
xrhsimopoihsete se syndyasmo me odhgous ODBC/JDBC. Aytoi einai
paromoioi me Borland C++ Builder, Borland JBuilder.
To Vibe einai Java kai C++ IDE (Integrated Development Environment)
kai kerdise sthn Unix Episkophsh gia ta oloklhrwmena systhmata
anaptyjhs ths xronias.
� Perissoteres plhrofories gia to Vibe sto
<
http://www.LinuxMall.com/products/00487.html>
� To 'QT' einai mia platforma anaptyjhs efarmogwn gia Windows95/NT
kai Unix <
http://www.troll.no> kai to ftp site toy einai to
<
ftp://ftp.troll.no>
Mporeite epishs na xrhsimopoihsete Borland C++ Builder, Delphi,
Borland JBuilder, PowerBuilder se Windows95 kai na synde8eite me
thn PostgreSQL se ena susthma unix mesw odhgwn ODBC/JDBC.
Deite epishs to PERL Database Interface se ayto to keimeno sto ``'' H
Perl kai C/C++ synistantai entona san epiloges glwssas gia IDE.
Dwrean ergaleia IDE -
Deite to CDROM ths dianomhs redhat linux.
� Lesstiff Mottif Tool
<
ftp://ftp.redhat.com/pub/contrib/i386/lesstiff*.rpm>
� FreeBuilder <
ftp://ftp.redhat.com/pub/contrib/i386/free*.rpm>
� SpecTCL <
ftp://ftp.redhat.com/pub/contrib/i386/spec*.rpm>
� JccWarrior <
ftp://ftp.redhat.com/pub/contrib/i386/jcc*.rpm>
� Kanchenjunga Java RAD Tool for PostgreSQL
<
http://www.man.ac.uk/~whaley/kj/kanch.html>
� Applixware Tool <
http://www.redhat.com>
� XWPE X Windows Programming Environment
<
http://www.rpi.edu/~payned/xwpe/>
<
ftp://ftp.redhat.com/pub/contrib/i386/xwpe*.rpm>
� XWB X Windows Work Bench
<
ftp://ftp.redhat.com/pub/contrib/i386/xwb*.rpm>
� NEdit <
ftp://ftp.redhat.com/pub/contrib/i386/nedit*.rpm>
10. Odhgoi Diasundeshs me thn PostgreSQL
10.1. ODBC Drivers gia thn PostgreSQL
ODBC einai akrwnumio toy 'Open DataBase Connectivity', ena dhmofiles
protypo gia prosbash se plhrofories apo diafores baseis apo
diaforetikous pwlhtes. Oi efarmoges poy exoyn graftei xrhsimopoiwntas
ODBC drivers, eggyountai oti 8a doylecoyn me diafores baseis opws
PostgreSQL, Oracle, Sybase, Informix klp.
� To PostODBC exei symperilhf8ei hdh sth dianomh. Deite to kentriko
web site <
http://www.postgresql.org>. Symperilambanetai sto CDROM
ths PostgreSQL.
� <
http://www.openlinksw.com> H Open Link Software Corporation
poylaei ODBC gia PostgreSQL kai alles baseis. H Open Link dinei
epishs dwrean ODBC (periorismeno ari8mo xrhstwn) - tsekarete to.
� Insight ODBC gia thn PostgreSQL
<
http://www.insightdist.com/psqlodbc> Ayto einai to epishmo site
toy PostODBC.
Yparxei kapoio ergo poy onomazetai FreeODBC Pack Package. Den yparxei
s' ayto ekdosh gia PostgreSQL, isws mporeite na boh8hsete.
� <
http://www.ids.net/~bjepson/freeODBC/> Ayth einai h dwrean ekdosh
gia ODBC.
10.2. UDBC Drivers gia thn PostgreSQL
To UDBC einai mia statikh ekdosh ODBC anejarthth apo diaxeiristes
odhgwn (driver managers) kai yposthrijh DLL, xrhsimopoieitai gia na
pros8etei yposthrijh apey8eias diasundeshs me bash mesa stis
efarmoges.
� <
http://www.openlinksw.com>H etaireia Open Link Software poyla UDBC
gia thn PostgreSQL kai alles baseis. H Open Link dinei epishs
dwrean UDBC (periorismeno ari8mo xrhstwn) - tsekarete to.
10.3. JDBC Drivers gia thn PostgreSQL
JDBC einai akrwnumio toy 'Java DataBase Connectivity'. H Java einai
mia glwssa programmatismou anejarthtoy platformas poy anaptux8hke apo
thn Sun Microsystems. Oi programmatistes Java en8arrunontai na
grafoyn efarmoges basewn dedomenwn xrhsimopoiwntas JDBC gia na
dieykolunoyn th metafersimothta metaju basewn opws h PostgreSQL,
Oracle, informix, klp. An gracete efarmogh se Java mporeite na parete
toys odhgous JDBC gia PostgreSQL apo ta parakatw sites:
O odhgos JDBC perilambanetai hdh sth dianomh ths PostgreSQL.
� <
http://www.demon.co.uk/finder/postgres/index.html> Diasundesh Java
(ths Sun) me PostgreSQL
� <
ftp://ftp.ai.mit.edu/people/rst/rst-jdbc.tar.gz>
� <
http://www.openlinksw.com> H etaireia Open Link Software poyla
JDBC gia PostgreSQL kai alles baseis. H Open Link dinei epishs
dwrean JDBC (periorismeno ari8mo xrhstwn) - tsekarete to.
� JDBC UK site <
http://www.retep.org.uk/postgres>
� JDBC FAQ site <
http://eagle.eku.edu/tools/jdbc/faq.html>
Ta JDBC home, guide kai FAQ briskontai sta -
� JDBC HOME <
http://splash.javasoft.com/jdbc>
� JDBC guide
<
http://www.javasoft.com/products/jdk/1.1/docs/guide/jdbc>
� JDBC FAQ <
http://javanese.yoyoweb.com/JDBC/FAQ.txt>
10.4. Java gia PostgreSQL
Oi programmatistes Java mporei na 8ewrhsoyn ta parakatw sites polu
xrhsima gia thn PostgreSQL.
� <
ftp://ftp.redhat.com/pub/contrib/i386> kai deite to postgresql-
jdbc-*.rpm
� <
http://www.blackdown.org>
11. Perl Database Interface (DBI) Driver gia PostgreSQL
11.1. Diasundesh Perl 5 me PostgreSQL
PERL einai akrwnumio toy 'Practical Extraction kai Report Language'.
H Perl einai dia8esimh sxedon se ka8e leitoyrgiko kai platforma
hardware. Mporeite na xrhsimopoihste Perl se Windows95/NT, ola ta Unix
(Solaris, HPUX, AIX, Linux, Irix, SCO klp.), se mainframe MVS, desktop
OS/2, OS/400, Amdahl UTS kai polla alla. H Perl trexei AKOMH kai se
polla mh dhmofilh/genika agnwsta leitoyrgika systhmata kai ylika!!
Etsi, mhn ekplageite an deite thn perl na trexei se polla oxi syxna
xrhsimopoioumena leitoyrgika.
Mporeite na fantasteite thn terastia bash xrhstwn kai programmatistwn
se Perl.
H diasundesh Perl me PostgreSQL perilambanetai sth dianomh ths
PostgreSQL. Koitajte ston katalogo src/pgsql_perl5.
� To Email gia epikoinwnia sxetika me thn Pgsql_perl5 :
[email protected]
� Allh phgh einai ta -
<
ftp://ftp.kciLink.com/pub/PostgresPerl-1.3.tar.gz>
� Perl Home page: <
http://www.perl.com/perl/index.html>
� Ekma8hsh ths Perl, cajte gia titlo Tutorial sto :
<
http://reference.perl.com/>
� To Perl FAQ einai sto :
<
http://www.yahoo.com/Computers_and_Internet/Programming_Languages/Perl/>
� Grafiko periballon gia Perl, Perl-Qt :
<
ftp://ftp.redhat.com/pub/contrib/i386> kai cajte gia to
PerlQt-1.06-1.i386.rpm
� Grafiko periballon gia Perl, Perl-Qt :
<
http://www.accessone.com/~jql/perlqt.html>
� Grafiko periballon gia Perl, Perl-XForms :
<
ftp://ftp.redhat.com/pub/contrib/i386> kai cajte gia to arxeio
Xforms4Perl-0.8.4-1.i386.rpm
� Grafiko periballon gia Perl, Perl-Tk :
<
ftp://ftp.redhat.com/pub/contrib/i386>
� Perl GUIkits : <
http://reference.perl.com/query.cgi?ui>
� Perl Database Interfaces :
<
http://reference.perl.com/query.cgi?database>
� Metafrasths apo Perl se "C" : <
http://www.perl.com/CPAN-
local/modules/by-module/B/> kai cajte gia to Compiler-a3.tar.gz
� Metafrasths apo Perl se kelyfos Bourne :
<
http://www.perl.com/CPAN/authors/id/MERLYN/sh2perl-0.02.tar.gz>
� apo awk se perl a2p kai apo sed se perl s2p perilambanetai me th
dianomh ths PERl.
� Deite epishs ta newsgroups gia PERL sto comp.lang.perl.*
11.2. Perl Database Interface DBI
11.2.1. TI EINAI TO DBI ;
To parakatw einai apospasma apo thn kentrikh selida toy Perl DBI.
To Perl Database Interface (DBI) einai ena programmatistiko interface
(API) se Perl gia diasundesh me baseis dedomenwn. Oi prosdiorismoi
toy Perl DBI API orizoyn ena sunolo apo roytines, metablhtes kai
symbaseis poy parexoyn ena synektiko interface bashs dedomenwn
anejarthto apo thn pragmatikh bash poy xrhsimopoieitai. Oi
plhrofories gia ayto to tmhma DBI prohl8e apo to keimeno 'DBI FAQ' to
opoio exei gracei o Alligator Descartes to anaparagagame me thn adeia
toy.
� Mporeite na epikoinwnhsete me ton Alligator Descartes Hermetica sto
[email protected]
11.2.2. Odhgos DBI gia thn PostgreSQL - DBD-Pg-0.89
Katebaste to DBD-Pg-0.89.tar.gz apo ta
� DBD-Pg-0.89 : <
http://www.perl.com/CPAN/modules/by-module/DBD/>
� Comprehensive Perl Archive Network CPAN <
http://www.perl.com/CPAN>
� Lista odhgwn DBI kai selides DBI module
<
http://www.hermetica.com/technologia/perl/DBI>
� Plhrofories gia to DBI 8a breite sto <
http://www.fugue.com/dbi/>
� Kentriko ftp site <
ftp://ftp.demon.co.uk/pub/perl/db>
� Diafora DBI link <
http://www-ccs.cs.umass.edu/db.html>
� Diafora DBI link <
http://www.odmg.org/odmg93/updates_dbarry.html>
� Diafora DBI link <
http://www.jcc.com/sql_stnd.html>
� H bash PostgreSQL <
http://www.postgresql.org>
APAITHSEIS:
� - na xtisete, na testarete kai na egkatasthsete thn Perl 5
(toylaxiston thn 5.002)
� - na xtisete, na testarete kai na egkatasthsete to module DBI
(toylaxiston to 0.89)
� - na xtisete, na testarete kai na egkatasthsete thn PostgreSQL
(toylaxiston thn 6.2)
11.2.3. Texnikh yposthrijh gia to DBI
Parakalw steilte ta sxolia sas kai anafores la8wn sto
�
[email protected]
Symperilabete parakalw thn ejodo ths entolh perl -v, kai perl -V, thn
ekdosh ths PostgreSQL, thn ekdosh toy DBD-Pg, kai thn ekdosh toy DBI
sthn anafora la8wn.
11.2.4. Ti einai ta DBI, DBperl, Oraperl kai *perl;
Opws eipe kai o Tim Bunce, o sxediasths kai syggrafeas toy DBI:
``To DBI einai ena programmatistiko interface (API) se Perl gia
diasundesh me diasundesh me baseis dedomenwn. Oi prosdiorismoi toy DBI
API orizoyn ena sunolo apo roytines, metablhtes kai symbaseis poy
parexoyn ena synektiko interface bashs dedomenwn anejarthto apo thn
pragmatikh bash poy xrhsimopoieitai.''
Me apla logia, to DBI interface epitrepei stoys xrhstes na exoyn
diafanh prosbash se pollaplous tupoys basewn. Etsi, an syndeeste thn
Oracle, Informix, mSQL, Sybase h opoiadhpote allh bash, de xreiazetai
na gnwrizete toys ypokeimenoys mhxanismous toy epipedoy 3GL. To API
poy orizetai apo to DBI 8a doylecei se oloys toys tupoys basewn.
Ena paromoio pleonekthma einai h ikanothta na synde8eite se duo baseis
diaforetikou tupoy mesw toy idioy perl script, px, 8elete na
diabasete dedomena apo mia bash Oracle kai na ta eisagete se mia bash
Informix mesa sto idio programma. To epipedo DBI sas epitrepei na to
kanete ayto apla kai isxyra.
DBperl einai to palio onoma gia tis prodiagrafes toy interface.
Xrhsimopoieitai synh8ws gia na ypodhlwsei ta perl4 modules gia
diasundesh me baseis, opws, oraperl, isqlperl, ingperl kai loipa. Ayta
ta interfaces den eixan stantar API kai genika den yposthrizontai.
Na mia lista apo DBperl modules, to antistoixo DBI tairi toys kai
plhrofories yposthrijhs. Erwthseis sxetika me ton odhgo DBI 8a prepei
na apey8unontai sth lista allhlografias dbi-users .
Onoma Module Apaitoumenh Bash Syggrafeas DBI
------------ ----------------- ---------- ---
Sybperl Sybase Michael Peppler DBD::Sybase
<
[email protected]>
http://www.mbay.net/~mpeppler
Oraperl Oracle 6 & 7 Kevin Stock DBD::Oracle
<
[email protected]>
Ingperl Ingres Tim Bunce & DBD::Ingres
Ted Lemon
<
[email protected]>
Interperl Interbase Buzz Moschetti DBD::Interbase
<
[email protected]>
Uniperl Unify 5.0 Rick Wargo -
<
[email protected]>
Pgperl Postgres Igor Metz DBD::Pg
<
[email protected]>
Btreeperl NDBM John Conover SDBM;
<
[email protected]>
Ctreeperl C-Tree John Conover -
<
[email protected]>
Cisamperl Informix C-ISAM Mathias Koerber -
<
[email protected]>
Duaperl X.500 Directory Eric Douglas -
User Agent
Parola ayta, merika DBI modules exoyn epipeda prosomoiwshs DBperl.
Etsi, h DBD::Oracle erxetai me ena epipedo prosomoiwshs Oraperl, poy
sas epitrepei na trejete klhronomika oraperl scripts xwris allages. To
epipedo prosomoiwshs metafrazei tis klhseis toy oraperl API se klhseis
DBI kai tis ektelei mesw toy DBI switch.
Na enas pinakas me plhrofories gia ta epipeda prosomoiwshs :
Module Epipedo prosomoiwshs Katastash
------ --------------------- ------
DBD::Oracle Oraperl Oloklhrwmeno
DBD::Informix Isqlperl Ypo anaptyjh
DBD::Sybase Sybperl Doyleuei; (xreiazetai epalh8eysh )
DBD::mSQL Msqlperl Ekdo8hke peiramatika me thn
DBD::mSQL-0.61
H prosomoiwsh Msqlperl einai mia eidikh periptwsh. To Msqlperl einai
enas odhgos perl5 gia mSQL baseis, alla de symmorfwnetai me tis prodi�
agrafes toy DBI. H xrhsh apodokimazetai rhta gia xarh toy DBD::mSQL.
Mporeite na katebasete thn Msqlperl apo th CPAN apo to:
� <
http://www.perl.com/cgi-bin/cpan_mod?module=Msqlperl>
11.2.5. Prodiagrafes DBI
Yparxoyn liges phges plhroforias gia DBI.
� Prodiagrafes DBI
<
http://www.hermetica.com/technologia/perl/DBI/doc/dbispec>
Yparxoyn duo prodiagrafes dia8esimes se ayto to link, oi nees
Proxeires (Draft) DBI prodiagrafes, ayto to keimeno allazei ka8hmerina
ka8ws h omada anaptyjhs badizei oros ena sta8ero interface, kai oi
palies istorikes DBperl prodiagrafes apo tis opoies anaptux8hke to
trexon DBI interface.
To teleytaio keimeno prepei na diabastei mono kai mono apo istoriko
endiaferon kai na mh xrhsimopoih8ei ws egxeiridio programmatismou, h
ws egkyro me opoiadhpote ennoia. Parola ayta, paramenei mia akomh
xrhsimh phgh anaforas.
Tekmhriwsh POD Ta PODs einai kommatia tekmhriwshs poy enswmatwnontai
synh8ws se programmata perl poy tekmhriwnoyn ton kwdika ``in place'',
parexontas ena xrhsimo boh8hma gia programmatistes kai xrhstes
modules. To POD gia DBI kai drivers ginetai olo kai perissotero
koinotopo, kai h tekmhriwsh gia ayta ta modules mporei na diabastei me
tis parakatw entoles.
Prodiagrafes DBI Ta POD gia prodiagrafes DBI mporei na diabastei me
thn entolh:
perldoc DBI
Oraperl Oi xrhstes toy epipedoy prosomoiwshs Oraperl poy erxetai mazi
me thn DBD::Oracle, mporoun na synexisoyn na diabasoyn gia to pws na
programmatisoyn me to Oraperl plhktrologwntas:
perldoc Oraperl
Ayto 8a paragei ena enhmerwmeno antigrafo ths arxikhs selidas boh8eias
oraperl, poy grafthke apo ton Kevin Stock gia perl4. To API ths
oraperl emfanizetai kai perigrafetai ekei plhrws.
DBD::mSQL Oi xrhstes toy DBD::mSQL module mporoun na diabasoyn gia
merikes private functions kai idiomorfies aytou toy odhgou (driver)
plhktrologwntas:
perldoc DBD::mSQL
Syxna Diatypwmenes Erwthseis (FAQ)
To keimeno, Frequently Asked Questions einai epishs dia8esimo ws
tekmhriwsh se POD ! Mporeite na to diabasete sto diko sas susthma,
plhktrologwntas:
perldoc DBI::FAQ
Ayto mporei na einai bolikotero gia an8rwpoys poy den einai
syndedemenoi monima h aneta, sto Internet.
To POD genika Plhroforhsh gia th syggrafh POD, kai gia thn filosofia
toy POD genikotera, mporei na diabastei grafontas:
perldoc perlpod
Xrhstes poy exoyn egkatasthsei to Tk module isws na endiaferontai na
ma8oyn pws yparxei dia8esimos enas POD anagnwsths basismenos se Tk poy
legetai tkpod, kai diamorfwnei POD se mia bolikh kai anagnwsimh morfh.
``Periplanhseis'', ``Mezedakia'' kai Parathrhseis Yparxei mia seira
apo peristasiakes ``periplanhseis'' apo diaforoys stis listes
allhlografias gia DBI.
� <
http://www.hermetica.com/technologia/perl/DBI/tidbits>
``DBI -- The perl5 Database Interface'' Ayto einai ena ar8ro apo ton
Alligator Descartes kai ton Tim Bunce gia th domh toy DBI.
Dhmosieuthke sto teuxos 5 toy ``The Perl Journal''. Einai yperbolika
kalo. Phgainete kai agoraste to periodiko. Edw poy ta leme, agoraste
ola ta teuxh! ``The Perl Journal''s WWW site is:
� <
http://www.tpj.com>
``DBperl'' Ayto to ar8ro, to opoio dhmosieuthke sthn ekdosh Noembrioy
toy 1996 ``Dr. Dobbs Journal'' asxoleitai me DBperl.
``The Perl5 Database Interface'' Ayto einai ena biblio grammeno apo
ton Alligator Descartes kai ekdo8hke apo toys O'Reilly kai Associates.
Listes Allhlografias yparxoyn treis listes allhlografias gia DBI poy
diaxeirizetai o Ted Lemon. Se oles mporeite na grafteite kai na
jegrafteite apo to World Wide Web sth dieu8ynsh :
� Listes allhlografias <
http://www.fugue.com/dbi>
Oi listes stis opoies mporoun na symmetexoyn oi xrhstes einai:
dbi-announce Ayth h lista allhlografias mono gia anakoinwseis. An den
mporeite na xrhsimopoihsete thn forma ths parapanw WWW selidas,
eggrafeite sth lista me ton akoloy8o tropo:
� Email:
[email protected]
me keimeno sto swma (body) toy mhnumatos 'subscribe'
dbi-dev H lista ayth stoxeuei se xrhsh apo toys programmatistes poy
kanoyn anaptyjh, poy syzhtane idees kai ennoies gia ta twn DBI
interface, API kai driver. An den mporeite na xrhsimopoihsete thn
forma ths parapanw WWW selidas, eggrafeite sth lista me ton akoloy8o
tropo:
� Email:
[email protected]
me keimeno sto swma (body) toy mhnumatos 'subscribe'
dbi-users Ayth h lista allhlografias einai mia lista genikwn
syzhthsewn poy xrhsimopoieitai gia anafores sfalmatwn, syzhthsh
problhmatwn kai genikes anazhthseis. An den mporeite na
xrhsimopoihsete thn forma ths parapanw WWW selidas, eggrafeite sth
lista me ton akoloy8o tropo:
� Email:
[email protected]
me keimeno sto swma (body) toy mhnumatos 'subscribe'
Xronika/Arxeia twn Listwn Allhlografias
� Amerikanika Arxeia Listwn Allhlografias
<
http://outside.organic.com/mail-archives/dbi-users/>
� Eyrwpaika Arxeia Listwn Allhlografias <
http://www.rosat.mpe-
garching.mpg.de/mailing-lists/PerlDB-Interest>
11.2.6. Problhmata Metaglwttishs h alliws "Kophke stis Ejetaseis!"
An exete core dump, dokimaste to module Devel::CoreStack gia na
dhmioyrghsete ena stack trace apo to core dump. To Devel::CoreStack
brisketai sto CPAN sto:
� <
http://www.perl.com/cgi-bin/cpan_mod?module=Devel::CoreStack>
Steilte Email sth lista dbi-users to stack trace, thn ekdosh twn
modules, ths perl, ta test poy kanate, thn ekdosh toy leitoyrgikou
systhmatos kai opoies alles sxetikes plhrofories. Oses perissoteres
plhrofories steilete, toso grhgorotera 8a anixneusoyn oi
programmatistes ta problhmata. An de mas steilte tipota, tote mhn
perimenete tipota kai apo emas.
-->
11.2.7. Yposthrizetai to DBI katw apo platformes Windows 95 / NT ;
H metafora twn DBI kai DBD::Oracle Win32 einai twra ena stantar tmhma
toy DBI, etsi, an katebasete ekdosh toy DBI megaluterh toy 0.81 8a
prepei na doyleuei mia xara. Mporeite na exete prosbash stis baseis
Microsoft Access kai SQL-Server apo to DBI mesw ODBC. Mazi me to
DBI-0.79 (kai metepeita) dinetai ena peiramatiko DBI 'epipedo
prosomoiwshs' gia to module Win32::ODBC. Onomazetai DBI::W32ODBC. 8a
xreiasteite to module Win32::ODBC.
� Win32 DBI <
http://www.hermetica.com/technologia/perl/DBI/win32>
� Win32 ODBC <
http://www.roth.net>
11.2.8. toy; Ti einai to DBM; Kai giati 8a prepei na xrhsimopoiw to
DBI sth 8esh
To UNIX eylogh8hke apo thn arxh me aples ``baseis'' basismenes se
epipeda arxeia, gnwstes san susthma dbm. To dbm sas epitrepei na
apo8hkeuete dedomena se arxeia, kai na anaktate ta dedomena grhgora
Parolayta, ayto exei kai sobara meionekthmata.
Kleidwma Arxeiwn (File Locking)
Ta systhmata dbm den pareixan idiaitera isxyres dynatothtes gia
kleidwma arxeiwn, oute kamia ikanothta gia th dior8wsh problhmatwn poy
proekyptan apo taytoxrones eggrafes [sth bash].
Ay8airetes Domes Dedomenwn (Arbitrary Data Structures)
Ta systhmata dbm epitrepoyn mono mia sta8erh domh dedomenwn: zeygaria
kleidiwn-timwn (key-value pairs). Ayth h timh mporei na einai ena
sun8eto antikeimeno, opws ena [ C ] struct, alla to kleidi prepei na
einai monadiko. Ayto htan megalos periorismos sth xrhsimothta twn
systhmatwn dbm.
Parolayta, ta systhmata dbm akoma einai xrhsima gia xrhstes me apla
sunola dedomenwn kai periorismenoys poroys, mia kai einai grhgora,
dynata kai ejairetika kala elegmena. Ta modules ths Perl gia thn
prosbash se systhmata dbm exoyn enswmatw8ei twra sthn dianomh ths,
mesw toy module AnyDBM_File.
Perilhptika, to DBM einai mia ikanopoihtikotath lush gia (kata kanona)
read-only baseis, h mikra kai apla sunola dedomenwn. Parolayta, gia
perissotero isxyra kai epektasima sunola dedomenwn, xwris oute kan na
anafer8oume kai se ajiopisto transactional locking, synistoume stoys
xrhstes na xrhsimopoihsoyn DBI.
11.2.9. Yposthrizetai < to tade xarakthristiko > sto DBI;
8ewrwntas oti to xarakthristiko poy zhthsate einai ena mh-stantar,
ejartwmeno apo kapoia sygkekrimenh bash, xarakthristiko, tote h
apanthsh einai oxi.
To DBI antanakla ena geniko API poy 8a doylecei gia tis perissoteres
baseis, kai den parexei kamia epipleon leitoyrgikothta gia kapoia
sygkekrimenh bash dedomenwn (database-specific functionality).
Parolayta, oi syggrafeis twn odhgwn mporoun, an to epi8ymoun, na
symperilaboyn hooks pros ejeidikeymenes leitoyrgies/xarakthristika
kapoias bashs dedomenwn mesw ths me8odoy func poy orizetai sto DBI
API. Osoi anaptussoyn scripts 8a prepei na shmeiwsoyn pws h
leitoyrgikothta poy parexetai mesw twn me8odwn func einai api8ano na
metafer8ei se alles baseis.
11.2.10. Xrhsimeuei ka8oloy to DBI gia programmatismo se CGI;
Me mia lejh, nai! To DBI einai ejairetika xrhsimo gia programmatismo
se CGI! Sthn pragmatikothta, 8a tolmousa na pw oti o programmatismos
se CGI einai mia apo tis kuries xrhseis toy DBI.
To DBI dinei thn ikanothta stoys programmatistes CGI na enisxusoyn tis
baseis poy exoyn WWW-fronted, pragma poy parexei stoys xrhstes th
dynatothta na paijoyn me terasties posothtes domhmenwn dedomenwn.
Epishs, sthn periptwsh poy ena site exei perissoterh kinhsh apo oti o
server ths bashs dedomenwn mporei na antimetwpisei, to DBI dinei th
dynatothta anaba8mishs toy server ths bashs dedomenwn sto paraskhnio,
xwris allages sta cgi scripts.
11.2.11. Pws petyxainw taxuteroys xronoys sundeshs me DBD Oracle kai
CGI;
O Apache httpd diathrei mia dejamenh (pool) apo paidia toy (httpd
children) gia na ejyphretoun tis aithseis twn clients.
Xrhsimopoiwntas to module toy Apache mod_perl toy Doug MacEachern, o
metafrasths ths perl (perl interpreter) enswmatwnetai sta paidia toy
httpd. Ta CGI, DBI, kai ta ypoloipa agaphmena sas modules mporoun na
fortw8oun kata thn ekkinhsh ka8e paidiou (child). Ayta ta modules de
8a janafortw8oun ean den allajoyn sto disko.
Gia perissoteres plhrofories sxetika me ton Apache, deite to Apache
Project's WWW site:
� Apache Project WWW site <
http://www.apache.org>
� Mod_perl module <
http://www.perl.com/cgi-
bin/cpan_mod?module=mod_perl>
11.2.12. Pws epitygxanw monimes (persistent) syndeseis metaju DBI kai
CGI
Xrhsimopoiwntas to module Apache::DBI module toy Edmund Mergl, ta
logins sth bash dedomenwn apo8hkeuontai kai antistoixizontai se ena
httpd child. An h efarmogh sas basizetai se enan mono xrhsth ths
bashs dedomenwn, h sundesh mporei na ginetai me ka8e child. Mexri
shmera, oi syndeseis stis baseis dedomenwn den mporoun na moirazontai
metaju diaforetikwn paidiwn toy httpd.
Mporeite na katebasete to Apache::DBI apo th CPAN mesw:
� <
http://www.perl.com/cgi-bin/cpan_mod?module=Apache::DBI>
11.2.13. to trexw apo ton httpd, apotygxanei!'' Giati; ``Otan trexw
ena perl script apo thn grammh entolhs, doyleuei, alla otan
Basika, enas logos gia ton opoio mporei na symbainei ayto einai oti o
xrhsths apo ton opoio trejate to script sth grammh entolwn exei swsta
ry8mismena tis metablhtes toy periballontos, sthn periptwsh toy
DBD::Oracle, metablhtes opws $ORACLE_HOME, $ORACLE_SID h TWO_TASK.
H diergasia httpd trexei synh8ws katw apo to xrhsth nobody, pragma poy
shmainei oti den exei ry8mismeno to periballon toy. Opoiodhpote script
epixeirhsei na trejei katw apo aythn thn katastash 8a apotuxei
sigoyra.
Gia na lusete ayto to problhma, 8este to periballon gia th bash sas se
ena mplok BEGIN ( ) sthn arxh toy script sas. Etsi 8a dior8w8ei to
problhma.
Paromoia, 8a prepei na elegjete to logfile me ta httpd la8h gia tyxon
endeijeis, opws kai ta ``Idiot's Guide To Solving Perl / CGI
Problems'' kai ``Perl CGI Programming FAQ'' gia perissoteres
plhrofories. Einai api8ano to problhma na exei sxesh me to DBI.
Diabaste kai ta duo ayta keimena prosektika!
� To ``Idiot's Guide To Solving Perl / CGI Problems'' 8a to breite
sto: <
http://www.perl.com/perl/faq/index.html>
11.2.14. Mporw na kanw multi-threading me to DBI;
Mexri thn hmeromhnia aytou toy FAQ, oxi. H perl den yposthrizei
multi-threading. Parolayta, to multi-threading anamenetai na ginei
meros toy pyrhna ths dianomhs ths perl sthn ekdosh 5.005, poy shmainei
oti to DBI 8a mporei na yposthrizei multi-threading arketa suntoma
meta ap' ayto.
Gia na deite paradeigmata kwdika OCI gia thn Oracle poy exei multi-
threaded entoles SELECT, phgainete sto:
� <
http://www.hermetica.com/technologia/oracle/oci/orathreads.tar.gz>
11.2.15. Pws mporw na kalesw stored procedures me to DBI;
An ypo8esoyme oti exete dhmioyrghsei mia stored procedure mesa se
kapoia bash, px, sthn Oracle, mporeite na xrhsimopoihsete to $dbh->do
gia na ektelesete amesa th diadikasia (procedure). Gia paradeigma,
$dbh->do( "BEGIN someProcedure END" );
11.2.16. Pws mporw na parw tis times poy epistrefontai apo tis stored
procedures me to DBI;
8ymh8eite, omws, na kanete elegxo gia la8h!
$sth = $dbh->prepare( "BEGIN foo(:1, :2, :3); END;" );
$sth->bind_param(1, $a);
$sth->bind_param_inout(2, \$path, 2000);
$sth->bind_param_inout(3, \$success, 2000);
$sth->execute;
11.2.17. Pws mporw na dhmioyrghsw h na katastrecw mia bash dedomenwn
me to DBI;
H dhmioyrgia kai diagrafh mias bashs einai ennoies polu afhrhmenes gia
na yposthrizontai ikanopoihtika apo to DBI. Gia paradeigma, h Oracle
den yposthrizei kan thn ennoia ths diagrafhs ths bashs! Sthn Oracle
epishs, o diakomisths ths bashs dedomenwn (database server) einai
oysiastika h bash, enw sthn mSQL, h diergasia toy diakomisth (server
process) trexei mia xara xwris na exei dhmioyrgh8ei kamia bash se
ayton. To problhma einai toso anomoio gia na to 8ijoyme.
Gi' ayto to logo, merikoi odhgoi yposthrizoyn dhmioyrgia kai diagrafh
basewn mesw twn private func methods. Deite thn tekmhriwsh twn odhgwn
poy xrhsimopoieite gia na deite an yposthrizoyn ayto to mhxanismo.
11.2.18. Pws diaxeirizetai to DBI tis times NULL ;
Oi times NULL sto DBI antimetwpizontai opws h timh undef. Oi times
NULL mporoun kataxwrh8oun stis baseis ws NULL, gia paradeigma:
$rv =
$dbh->do( "INSERT INTO table VALUES( NULL )" );
alla otan erwth8oun, oi times NULL 8a prepei na sygkri8oun me thn
undef. Ayto einai stantar gia oloys toys odhgous.
11.2.19. Ti einai aytes oi me8odoi func (func methods);
H me8odos func orizetai sto DBI san to shmeio eisodoy gia
leitoyrgikothta ejartwmenh apo th bash, px, h ikanothta na
dhmioyrghsete h na diagracete baseis. To na kalesete aytes tis
me8odoys poy ejartwntai apo toys odhgous einai aplo, gia paradeigma,
gia na kalesete th me8odo createDatabase poy pairnei mia parametro, 8a
grafame:
$rv =
$dbh->func( 'argument', 'createDatabase' );
Osoi anaptussoyn logismiko 8a prepei shmeiwsoyn oti oi me8odoi func
den einai metafersimes metaju diaforetikwn basewn.
11.2.20. Emporikh Yposthrijh kai Ekpaideysh
To Interface ths Perl5 gia baseis einai ena DWREAN logismiko. ERXETAI
XWRIS KAMIA EGGYHSH OPOIOYDHPOTE EIDOYS.
Parolayta, merikoi organismoi parexoyn eite texnikh yposthrijh eite
programmata ekma8hshs toy DBI.
Perl Clinic : H Perl Clinic mporei na kleisei symbolaia gia emporikh
yposthrijh se Perl, DBI, DBD::Oracle kai Oraperl. Yposthrijh parexetai
apo thn etaireia sthn opoia doyleuei o Tim Bunce, o syggrafeas toy
DBI. Gia perissoteres yphresies sxetika me tis yphresies toys, deite
to :
� <
http://www.perl.co.uk/tpc>
12. Ergaleia Diaxeirishs ths PostgreSQL
12.1. PGACCESS - Ena grafiko ergaleio gia th diaxeirish ths Post�
greSQL
To PgAccess einai ena Tcl/Tk interface gia thn PostgreSQL.
Symperilambanetai hdh sth dianomh ths PostgreSQL. Rijte mia matia se
ayto to web site gia neoterh ekdosh
� <
http://www.flex.ro/pgaccess>
� An exete opoiodhpote sxolio, protash gia beltiwsh, mh distasete na
steilete e-mail sto :
[email protected]
Xarakthristika toy PgAccess
Para8yra toy PgAccess : Kentriko para8yro , dhmioyrgia pinakwn (table
builder) , Emfanish pinakwn (erwthsewn) (table(query) view),
dhmioyrgia erwthsewn optika (visual query builder).
Pinakes
� - emfanish pinakwn, megisto 200 eggrafes (allazei apo to menou
preferences)
� - allagh mege8oys sthlhs, sernontas thn ka8eth grammh (kalutera sto
xwro toy pinaka apo oti sthn epikefalida toy pinaka)
� - text wrap sta kelia - apo8hkeysh ths emfanishs ka8e pinaka
� - import/export se ejwterika arxeia (SDF,CSV)
� - dynatothtes filtrarismatos (dwste ena filtro san price>3.14)
� - dynatothtes tajinomhshs (dwste xeirokinhta to(ta) pedia pros
tajinomhsh)
� - editing in place
� - beltiwmeno boh8hma gia paragwgh pinakwn (table generator
assistant)
� - beltiwmenes dynatothtes dior8wshs pediwn
Erwthseis (Queries)
� - dhmioyrgei, dior8wnei kai apo8hkeuei "erwthseis poy ka8orizei o
xrhsths"
� - apo8hkeuei erwthseis san views
� - ektelei erwthseis
� - emfanish apotelesmatwn erwthsewn tupoy select
� - diagrafh kai allagh onomatos erwthshs
� - Grafiko xtisimo erwthshs me dynatothtes drag & drop. Gia osoys
apo esas eixate sthsei to Tcl/Tk plugin gia to Netscape Navigator,
mporeite na to deite na doyleuei patwntas edw
Sequences
� - dhmioyrgia sequences, diagrafh kai elegxos toys Synarthseis
� - dhmioyrgia, elegxos kai diagrafh synarthsewn se glwssa SQL
Mellontikes ylopoihseis
� - sxediasmos pinakwn (pros8hkh newn pediwn, allagh onomatos, klp.)
� - ka8orismos synarthshs
� - dhmioyrgia report
� - basiko scripting
An exete opoiodhpote sxolio, protash gia beltiwsh, mh distasete na
steilete e-mail sto :
�
[email protected]
Perissoteres plhrofories gia th biblio8hkh libgtcl
8a xreiasteite epishs na dhlwsete pros xrhsh th biblio8hkh diasundeshs
PostgreSQL se Tcl san ena Tcl/Tk 'load'-able module. Onomazetai
libpgtcl kai o phgaios kwdikas ths brisketai ston katalogo ths
PostgreSQL /src/interfaces/libpgtcl. 8a xreiasteite idiaitera, mia
biblio8hkh libpgtcl poy na mporei na fortw8ei apo Tcl/Tk. Ayto einai
diaforetiko texnika apo ena typiko PostgreSQL loadable object arxeio,
epeidh h libpgtcl einai mia syllogh apo object arxeia. Katw apo Linux,
onomazetai libpgtcl.so. Mporeite na katebasete apo edw mia ekdosh hdh
metaglwttismenh gia systhmata Linux i386. Apla antigracte to
libpgtcl.so ston katalogo biblio8hkwn toy systhmatos (/usr/lib)kai
jekinhste. Mia lush einai na afairesete apo ton phgaio kwdika th
grammh poy periexei to fortwma ths libpgtcl.so kai na fortwsete th
pgaccess.tcl oxi me wish, alla me pgwish (h wishpg) ayto to wish me to
opoio eixe ginei link me th biblio8hkh libpgtcl.
12.2. Windows Interactive Query Tool gia PostgreSQL (WISQL h MPSQL)
H MPSQL parexei stoys xrhstes ena grafiko SQL interface gia thn
PostgresSQL. H MPSQL einai paromoia me to SQL Worksheet ths Oracle
kai to ergaleio erwthsewn toy Microsoft SQL Server WISQL. Exei wraio
grafiko interface kai istoriko entolwn. Epishs mporeite na kanete cut
kai paste kai exei kai alla wraia xarakthristika poy beltiwnoyn thn
paragwgikothta.
� <
http://www.troubador.com/~keidav/index.html>
� Email:
[email protected]
� <
http://www.ucolick.org/~de/> sto arxeio tcl_syb/wisql.html
� <
http://www.troubador.com/~keidav/index.html>
� Email:
[email protected]
12.3. Interactive Query Tool(ISQL) gia thn PostgreSQL - Onomazetai
PSQL
To ISQL einai gia termatika me Character command line. Perilambanetai
sth dianomh, kai legetai PSQL. Moiazei polu me to ISQL ths Sybase, kai
to SQLplus ths Oracle. Sto unix prompt dwste thn entolh 'psql' h opoia
8a sas bgalei se psql> prompt.
Pathste \h gia na deite th boh8eia twn entolwn.
Polu filiko sto xrhsth kai eukolo sth xrhsh. Mporeite na exete pros�
bash se ayto kai apo scripts toy kelyfoys.
12.4. MPMGR - Ergaleio Diaxeirishs Basewn gia PostgresSQL
To MPMGR parexei ena grafiko interface diaxeirishs ths PostgresSQL. 8a
to breite sto
� <www.mutinybaysoftware.com/>
� Email:
[email protected]
� <
http://www.troubador.com/~keidav/index.html>
� Email:
[email protected]
� <
http://www.ucolick.org/~de> in file tcl_syb/wisql.html
� WISQL gia thn PostgreSQL <
http://www.ucolick.org/~de/Tcl/pictures>
� Email:
[email protected]
13. Ry8mizontas pollapla koytia PostgreSQL se mia o8onh
Mporeite na stoibajete ta koytia-cpu kai na synde8eite se mia o8onh
kai na xrhsimopoihsete to diakopth gia na dialejete to host. Ayto
ejoikonomei xwro kai de xreiazeste polles o8ones, plhktrologia kai
pontikia (ejoikonomeite peripoy 100 me 500 US dolaria ana set) kai
glitwnete epishs apo thn akatastasia.
Xrhsimopoiwntas ayth thn texnikh, mporeite na stoibajete pollous
PostgreSQL servers (gia anaptyjh, elegxo, paragwgh), Web servers, ftp
servers, Intranet servers, Mail servers, News servers se ena polu chlo
rafi. O diakopths mporei na xrhsimopoih8ei epishs gia koytia me
Windows 95/NT h OS/2.
Rijte mia matia sta parakatw sites:
� Thlefwnikes paraggelies apo thn DataComm Warehouse Inc, se 24wrh
bash, olh thn ebdomada, sto 1-800-328-2261. Parexoyn ka8e tupo
ylikou H/Y <
http://www.warehouse.com>. To 4-8yro KVM switch
(PS/2) kostizei gurw sta $89.99. Part No. DDS1354
� Network Technologies Inc
<
http://www.networktechinc.com/servswt.html> (120 dolaria/PC 8
ports) to opoio exei listes gia 'Server Switches' kai 'switches
mono gia Video '
� Scene Double Inc, Agglia
<
http://www.scene.demon.co.uk/qswitch.htm>
� Cybex corporation <
http://www.cybex.com>
� Raritan Inc <
http://www.raritan.com>
� RealStar Solutions Inc <
http://www.real-star.com/kvm.htm>
� Belkin Inc <
http://www.belkin.com>
� Better Box Communications Ltd.
<
http://www.betterbox.com/info.html>
� Phgainete sto plhsiestero magazi hardware kai zhthste to "Server
Switch" gnwsto kai san "KVM Auto Switches".
Yajte sth mhxanh anazhthshs yahoo gia na breite perissoteres etaireies
me "Server Switches" h "KVM Switches".
Synistatai idiaitera na exete ena unix box eidika afierwmeno gia ka8e
PostgreSQL data-server gia kaluterh apodosh. Kamia allh
efarmogh/diergasia den prepei na trexei se ayto to mhxanhma. Deite to
tmhma "Epaggelmatika" stis topikes efhmerides gia topikous pwlhtes poy
pwloun mono koytia intel, 13" monoxrwmes o8ones (o8onh polu xamhlou
kostoys). Oi topikoi pwlhtes pwloun mono to hardware xwris Microsoft
Windows/DOS (etsi ejoikonomeite $ 150). De xreiazeste egxrwmh o8onh
gia to diakomisth ths bashs dedomenwn, ka8ws mporeite na kanete
apomakrysmenh diaxeirish (remote administration) apo egxrwmo sta8mo
ergasias. Parte to RedHat (h kapoia allh dianomh) Linux cdrom apo to
-
� Linux System Labs Web site: <
http://www.lsl.com/> 7 (U.S.
dolaria)
� Cheap Bytes Inc Web site: <
http://www.cheapbytes.com/> 7 (U.S.
dolaria)
Sigoyreyteite oti to yliko poy agorasate yposthrizetai apo to
Redhat Linux. Deite to ftp site hs Redhat prin agorasete yliko, gia
proteinomenoys SCSI adapters, kartes binteo klp. Me $ 600 mono
mporeite na parete ena isxyro koyti intel me Redhat Linux poy
trexei PostgreSQL. Xrhsimopoihste odbc/jdbc/perl/tcl gia na
synde8eite me thn PostgreSQL apo Windows95, OS/2, Unix Motif h
kapoio web browser (p.x. Redbaron, Opera, Netscape, 20 alloi). (oi
Web browsers exoyn ginei pia standard client).
Me ayth thn idea mporeite na elegxete polla koytia cpu me mia o8onh
kai ena plhktrologio!
Parakatw 8a breite ena apospasma apo thn networktechnic Inc gia
"Server Switches"
Paraggeilete twra sto 800-742-8324 (xwris dasmous gia Amerikh)
Gia na labete ton katalogo mas parakalw steilte Email sth dieu8ynsh:
[email protected]
XEIRISTEITE PERISSOTERA APO ENA PC me ena plhktrologio, o8onh kai
pontiki Oi hlektronikoi diakoptes epitrepoyn me ena plhktrologio,
o8onh kai pontiki na xeiris8eite 64 PC. Enswmatwmenoi mikroupologistes
prosomoiwnoyn thn paroysia plhktrologioy, o8onhs kai pontikiou me ola
ta prosarthmena PC 100% toy xronoy.
Xarakthristika kai Efarmoges
� Plhktrologio, xeiristhrio panw sth syskeyh h thlexeiristhrio
� 9 pin D Serial h 6 pin miniDIN yposthrijh gia pontiki
� 5 pin DIN h 6 pin miniDIN yposthrijh plhktrologioy
� 1600x1200 analysh o8onhs
� Xrhsimopoiei koina kalwdia
� Se Desktop kocimo h kai gia rack
Prodiagrafes - Plhktrologio
� Ola ta busmata einai 8hlyka
� 5 pin DIN h 6 pin miniDIN
� Mporei na ekkinei opoiadhpote stigmh opoiondhpote H/Y
Xeiristhrio - Mprostina Koympia
� Synde8eite se enan H/Y me to pathma enos koympiou
� Krathste pathmeno opoiodhpote koympi gia perissotero apo miso
deyterolepto kai mpeite se tropo leitoyrgias SCAN, BROADCAST h
COMMAND
� Ta LEDs ypodeiknuoyn ton tropo leitoyrgias toy plhktrologioy
� Pathste CTRL+* kai mpeite se tropo leitoyrgias COMMAND
� Einai dia8esimoi oi SCAN, BROADCAST kai COMMAND tropoi leitoyrgias
Pontiki
* 9 pin D serial
� o diakopths NTI poy prosomoiwnei to seiriako pontiki ths Microsoft
� o 9 pin D arseniko gia pontiki
� o 9 pin D 8hlyko gia toys H/Y
* 6 pin miniDIN
� o diakopths NTI poy prosomoiwnei to pontiki IBM PS/2
� o Ola ta busmata einai 8hlyka
Kalwdiako xeiristhrio/thlekontrol
� Proairetiko --8a prepei na agorastei jexwrista
� Kanei tis doyleies toy "Xeiristhrioy - Mprostinwn Koympiwn"
O8onh-VGA
� Euros 150 MHz
� 1600X1200 analysh xwris paramorfwsh
� 1/4la ta busmata einai 8hlyka
14. Efarmoges kai Ergaleia gia thn PostgreSQL
14.1. Glwssa 4hs genias (4GL) PostgreSQL gia efarmoges me web kai
bash dedomenwn - Platforma anaptyjhs AppGEN
To AppGEN mporeite na to katebasete apo to
� <
http://www.man.ac.uk/~whaley/ag/appgen.html>
� <
ftp://ftp.mcc.ac.uk/pub/linux/ALPHA/AppGEN>.
To AppGEN einai mia ychlou epipedoy, tetarths genias glwssa kai
platforma anaptyjhs efarmogwn gia thn paragwgh efarmogwn basismenwn
sto World Wide Web (WWW). Aytes oi efarmoges typika xrhsimopoiountai
sto internet h sto intranet enos organismou. Oi efarmoges toy AppGEN
ylopoiountai ws C scripts poy akoloy8oun ta protypa toy Common Gateway
Interface (CGI), ta opoia yposthrizontai apo toys perissoteroys Web
Servers.
Gia na xrhsimopoihsete to AppGEN 8a xreiasteite ta akoloy8a :-
Thn PostgresSQL, susthma diaxeirishs sxesiakwn basewn dedomenwn
Enan web server poy na yposthrizei CGI opws o HTTPD toy NSCA
Enan metaglwttisth ansi C opws o GCC
To AppGEN apoteleitai apo ta akoloy8a ektelesima gia Unix (Linux) :-
� defgen, to opoio paragei mia basikh protyph efarmogh (template
application) apo kapoies logikes domes dedomenwn. Oi efarmoges
mporoun na eisagoyn, enhmerwnoyn, diagrafoyn kai caxnoyn eggrafes
sthn bash dedomenwn enw parallhla diathroun aytomata kai thn
akeraiothta twn dedomenwn (referential integrity).
� appgen, o metaglwttisths AppGEN poy metaglwttizei kwdika appgen se
ektelesimo CGI C kwdika kai keimena HTML etoima gia xrhsh se enan
web server.
� dbf2sql, mia efarmogh gia metatroph arxeiwn symbatwn me dBase III
.dbf se ektelesima SQL scripts. Ayto epitrepei se dedomena poy
fylassontai sta perissotera paketa basewn dedomenwn gia DOS/Windows
na metafer8oun se enan SQL server opws h PostgresSQL.
� Epipleon, to AppGEN parexei mia syllogh apo keimena HTML , arxeia
GIF kai Java applets poy xrhsimopoiountai apo to susthma, kai
fysika, opws ka8e kalo logismiko, symperilambanei kai ton plhrh
phgaio kwdika.
Mporeite na epikoinwnhsete me ton syggrafea, Andrew Whaley, sto
�
[email protected]
14.2. WWW Web interface gia PostgresSQL - DBENGINE
To dbengine einai ena plug 'n play Web interface gia thn PostgreSQL
poy dhmioyrgh8hke apo ton Ingo Ciechowski. Brisketai sto :
� <
http://www.cis-computer.com/dbengine/ >
Sxetika me to DBENGINE : To dbengine einai ena interface diasundeshs
WWW kai Postgres95 poy parexei aplh prosbash se opoiadhpote bash mesa
se liga lepta.
To PHP 3 dinei mia glwssa poy moiazei me thn Perl sta keimena sas,
alla oxi pragmatikh Perl enw to AppGen kai to wdb-p95 apaitoun na
dhmioyrghsete merika arxeia ry8misewn gia ka8e mia apo tis baseis sas
-- moiazei san na prepei prwta ap' ola na ma8ete kapoio eidos neas
glwssas prin na jekinhsete.
Anti8eta me ta alla ergaleia, den apaiteitai na ma8ete eidiko
programmatismo h kapoia scripting language gia na jekinhsete na
doyleuete me to dbengine. Den yparxei epishs kapoio arxeio ry8misewn
gia ka8e bash, etsi de xreiazetai na ejoikeiw8eite me mia nea domh.
Parolayta - se periptwsh poy 8elete na exete prosbash se ola ta
xarakthristika toy dbengine 8a htan kalh idea na ma8ete th glwssa
Perl.
Olo to susthma mporei na ry8mistei mesw aplwn xeirismwn se mia
pros8eth bash dedomenwn poy periexei plhrofories sxetika me to pws na
optikopoihsete ta dedomena sas. Mporeite epishs na orisete virtual
Fields ta opoia ypologizontai amesws prin na emfanistoun sthn o8onh.
Adeia To dbengine einai dwrean logismiko katw apo toys idioys oroys
opws kai h Perl. Diabaste thn adeia ths an den eiste sigoyroi gia ti
mporeite h den mporeite na kanete. Se telikh analysh, ayth einai mia
elastikoterh kai pio hpia ekdosh apo thn GNU adeia -- den ephreazei th
doyleia sas an 8elete na "daneisteite" kati apo to dbengine h na
sygkentrwsete kommatia apo ayto san meros enos emporikou proiontos!
14.3. Apache Webserver Module gia PostgreSQL - NeoSoft NeoWebScript
O Apache einai enas polu gnwstos Web Server. Ena module diasundeshs
PostgreSQL me ton Apache Webserver brisketai sto -
� <
http://www.neosoft.com/neowebscript/>
To NeoWebScript einai mia glwssa programmatismou poy epitrepei kai
apla kai sun8eta programmata na enswmatw8oun se arxeia HTML.
Otan zhteitai mia selida HTML poy periexei enswmatwmeno kwdika
NeoWebScript, o webserver poy yposthrizei NeoWebScript ektelei to(a)
enswmatwmena script(s), kai paragei mia web selida me periexomeno
kommeno kai rammeno stis protimhseis toy programmatisth, h opoia
dhmioyrgh8hke me ayto to programma.
To NeoWebScript einai enas grhgoros, asfalhs, eukolos tropos gia na
ma8ete isxyro, server-based programmatismo ston kwdika HTML twn web
selidwn. Me to NeoWebScript, einai eukolo na ftiajete metrhtes
(counters), formes gia email, gkrafiti stis selides, guest books kai
na kratate stoixeia gia toys episkeptes, akomh kai gia enan arxario
programmatisth. Deite poso kala to NeoWebScript krata ta dika toy se
sugkrish me thn PERL kai to JavaScript.
An 8elete na egkatasthsete to NeoWebScript ston webserver sas, o
Webmaster sas prepei na diabasei to Sysop FAQ gia na jekinhsei. H
"8ewria twn Leitoyrgiwn" (Theory of Operations) 8a ejhghsei pws
doyleuei to NeoWebScript, enw h egkatastash 8a sas ka8odhghsei sta
diafora stadia ths. H diaxeirish asxoleitai me 8emata ru8mishs kai
ekteleshs toy server, diaforoi elegxoi epalh8euoyn th swsth leitoyrgia
twn NeoWebScript sas kai h aposfalmatwsh asxoleitai me ta problhmata
toy server.
Den yparxei kanena kostos gia th xrhsh toy NeoWebScript-2.2 gia ton
ISP sas, to intranet sas h to extranet sas. 8a deite thn plhrh adeia
xrhshs, otan eggrafeite gia na to katebasete, alla h oysia einai pws
8a 8elame 99 spartarista dolaria an 8elete na to enswmatwsete sta dika
sas proionta h na to xrhsimopoihsete se enan server emporikwn
syndiallagwn (p.x. SSL).
To NeoWebScript einai ena module gia ton Apache webserver poy sas
epitrepei thn enswmatwsh ths glwssas programmatismou Tcl/Tk stis
istoselides sas san ena ergaleio scripting. Epinoh8hke apo ton Karl
Lehenbauer, ton Texniko Diey8ynth ths NeoSoft, kai tekmhriw8hke,
employtisthke kai epekta8hke apo toys programmatistes kai texnikous
syggrafeis ths NeoSoft.
O Apache webserver einai o pleon dhmofilhs webserver ston kosmo,
xrhsimopoioumenos sto 68 % twn sites poy ejetasthkan.
H Tcl/Tk einai h panisxyrh, dwrean, anejarthth platformas glwssa
scripting, poy anaptux8hke apo ton Dr. John Ousterhout. Para8etoyme ta
logia toy
"H Tcl/Tk epitrepei stoys programmatistes logismikou na kanoyn thn
doyleia deka fores taxutera apo oti xrhsimopoiwntas ergaleio8hkes
(toolkits) basismenes se C h C++. Einai epishs mia teleia glwssa
enswmatwshs hdh yparxontwn efarmogwn poy tis kanei pio grafikes kai
tis ejoplizei me Internet-ikes dynatothtes".
O Karl Lehenbauer, Idryths kai Proistamenos toy Texnikou Tmhmatos ths
NeoSoft, apotelei meros ths anaptyjhs ths Tcl/Tk apo ta prwta ths
stadia. Mazi me ton Mark Diehkans, dhmiourghsan thn Extended Tcl,
gnwsth epishs kai ws TclX h NeoSoft Tcl, ena isxyro sunolo epektasewn
sth glwssa. Polles apo tis basikes entoles ths Tcl proekycan apo thn
Extended Tcl, kai meta eishx8hsan apo ton Dr. Ousterhout sto basiko
pyrhna ths glwssas.
NeoSoft Inc., 1770 St. James Place, Suite 500, Houston, TX 77056 USA
14.4. gia thn PostgreSQL Oi HEITML epektaseis ths HTML ston server
kai mia glwssa 4hs genias
To ergaleio heitml einai enas allos tropos gia na epikoinwnei h
postgres me to world wide web. Gia perissoteres plhrofories
epikoinwnhste me ton
Helmut Emmelmann H.E.I. Informationssyteme GmbH
Wimpfenerstrasse 23 Thl. 49-621-795141
68259 Mannheim Germany Faj. 49-621-795161
� Steilte email ston K. Helmut Emmelmann sto
[email protected]
� H kuria selida toy Heitml <
http://www.heitml.com>
� H deytereuoysa selida toy Heitml <
http://www.h-e-i.deom>
To heitml einai epektaseis ths HTML sthn pleyra toy server kai
taytoxrona glwssa 4hs genias. Mporeite na gracete efarmoges gia to web
se styl HTML xrhsimopoiwntas HTML-oeidh tags.
To heitml (proferete "Xai"-TiEmEl) einai epektash toy HTML kai mia
plhrws ejoplismenh glwssa 4hs genias poy epitrepei se efarmoges Web na
allhlepidroun me dedomena poy fylassontai se SQL baseis, xwris na
katafeugoyn se periploka CGI scripts.
To heitml epekteinei to HTML sthn pleyra toy server, metatrepontas
dynamika arxeia ".hei" se HTML kai einai loipon symbato me ka8e web
browser. Xrhsimopoiei thn gnwrimh, euxrhsth suntajh HTML kai parexei
plouto prokataskeyasmenwn Tags kai Biblio8hkwn gia na lusoyn 8emata
poy mexri twra xreiazontan CGI. Opws kai to XML, to heitml parexei
tags orismena apo ton xrhsth. Me to heitml ta orismena apo ton xrhsth
tags metatrepontai se HTML kai stelnontai ston browser.
To heitml stoxeuei kai stoys sxediastes HTML kai stoys epaggelmaties
programmatistes. Oi sxediastes HTML mporoun na xrhsimopoioun heitml
Tags gia na xtistoun dynamikes selides web, na prospelaunoyn SQL
baseis, h na dhmioyrgoun sun8etes efarmoges web. Metrhtes, baseis me
stoixeia kataxwrhshs, formes anazhthshs, formes email , ierarxika
menou, ola mporoun na kataskeyastoun apla xrhsimopoiwntas
proka8orismena HTML-oeidh Tags poy briskontai stis diafores
Biblio8hkes.
Gia toys programmatistes, to heitml enswmatwnei mia plhrh glwssa 4hs
genias se HTML
(p.x. <if>, <while>, kai <let> Tags),
syn isxyres dynatothtes ypologismou ekfrasewn me akeraioys, pragmatik�
ous, dyadikous, alfari8mhtikous, tuples telestes. Ta Tuples antimetwp�
izontai opws stis monternes antikeimenostrafeis glwsses kai fylasson�
tai se metablhtes swrwn (heap variable). Oi metablhtes ths heitml,
symperilambanomenwn kai olwn twn sun8etwn domwn dedomenwn, fylassontai
sto swro diathrwntas tis arxikes toys times metaju twn selidwn xrhsi�
mopoiwntas to Session Mode. Einai dynaton na orisete ta dika sas tags
h tags toy periballontos kai akoma kai na epanorisete ta HTML-tags.
To heitml kanei dynato to na
- - - anaptyx8oun Web Sites me ena domhmeno kai spondylwto tropo, wste
na meiw8ei drastika h ka8ysterhsh logw synthrhshs.
- - - anaptyx8oun ejypna kai allhlepidrastika Web Sites, me
periexomeno poy prosarmozetai dynamika stis anagkes toy xrhsth.
- - - emfanisete to periexomeno SQL basewn xwris na xreiastei ka8oloy
programmatismos ektos apo to na xrhsimopoihsete th biblio8hkh mas twn
proka8orismenwn "dba" Tags.
- - - anaptyx8oun efarmoges sun8etwn basewn dedomenwn kai katalogwn
agorwn xrhsimopoiwntas tis Session Variables
To heitml trexei se Linux me opoiondhpote Web Server poy xrhsimopoiei
CGI interface, kai einai idiaitera grhgoro (apofeugontas thn
ka8ysterhsh logw CGI) me ton APACHE Web Server xrhsimopoiwntas to
Apache API. Mexri twra yposthrizontai oi baseis MSQL (ekdosh 1 kai 2),
PostgreSQL (ekdosh 6), mysql, kai h yard. To heitml doyleuei epishs se
Linux, BSDi, Solaris kai SunOS, ka8ws kai se Windows NT me CGI kai
ISAPI kai ODBC kai Windows 95.
To heitml (se linux) einai dwrean gia ereynhtikh, mh-emporikh kai
idiwtikh xrhsh. Ta emporika Web Sites prepei na plhrwsoyn telh gia thn
adeia xrhshs. H plhrhs leitoyrgikh ekdosh toy heitml einai dia8esimh
na thn katebasete gia mia periodo dokimhs dwrean. (Shmeiwste,
parolayta, oti ka8e Web selida ".hei" poy anaptussete 8a emfanizei ena
mhnyma poy 8a to xarakthrizei san ekdosh gia mh emporikh xrhsh. Meta
thn eggrafh, 8a labete ena kleidi gia na ejafanisete ayto to mhnyma
xwris na xreiastei na epanegkatasthsete to programma.)
To heitml (proferetai "Xai"-TiEmEl) epekteinei kai employtizei
shmantika th leitoyrgikothta ths HTML me ton orismo tags kai
xarakthristika plhres programmatismou. Ayto kanei dynath thn uparjh
efarmogwn dynamikou periexomenoy kai basewn dedomenwn mesa ston kosmo
ths HTML, xwris CGI kai ejwteriko scripting h alles glwsses
programmatismou. Ayto shmainei oti eseis, san syggrafeas HTML,
mporeite na pros8esete efarmoges stis web selides sas, xrhsimopoiwntas
apla merika nea tags xwris CGI kai ka8oloy programmatismo. Apo thn
allh, san proxwrhmenos xrhsths h programmatisths mporeite na
dhmioyrghsete isxyres programmatistikes biblio8hkes me tag. Ayth h
proseggish kanei to heitml katallhlo toso gia toys neofertoys sthn
HTML oso kai gia toys epaggelmaties programmatistes. To heitml trexei
sto web server kai dhmioyrgei dynamika HTML, etsi wste to heitml na
einai symbato me ta stantar toy internet kai me opoiodhpote web
browser. Epitrepei plhrh prosbash se baseis enw prostateuei to xrhsth
apo thn peritth polyplokothta toy CGI. To heitml exei anaptyx8ei
sumfwna me prosfates ereynes kai se systhmata kataskeyhs
metaglwttistwn kai dosolhciwn (transaction).
Oi selides heitml anaptussontai opws kai oi selides HTML, me enan text
editor h enan HTML editor, kai topo8etountai sto web server me to
gnwsto tropo. Parolayta, oi selides mporoun na periexoyn twra dynamika
heitml tags kai biblio8hkes tag gia prosbash se baseis. Mporeite na
xrhsimopoihsete ayta ta tags gia na exete prosbash se baseis, na
dhmioyrghsete dynamiko periexomeno, na steilete emails, kai na
dhmioyrghsete akomh isxyres efarmoges opws eggrafh se baseis kai
systhmata agorwn.
Oi neofertoi sthn glwssa HTML kai oi epaggelmaties programmatistes 8a
meinoyn ekplhktoi me to poso grhgora kai eukola mporoun na sxediasoyn
endiaferoyses efarmoges opws to Interactive Guestbook xwris na
xreiazetai na ma8oyn na grafoyn sun8eta kai poluploka CGI scripts,
apla kai mono xrhsimopoiwntas ta ergaleia poy parexontai me th dba
biblio8hkh mas.
To heitml synodeuetai apo ena megalo plh8os tag biblio8hkwn, gia na
dhmioyrghsete guestbooks, efarmoges synthrhshs ths bashs, epektasimes
formes erwthsewn, isxyres formes email h na domhste to web site sas
xrhsimopoiwntas ena ierarxiko menou. Ayta ta ergaleia einai etoima,
apla pros8este ta antistoixa tags sto web site sas.
San empeiros programmatisths, mporeite na kanete plhrh xrhsh ths
heitml arxitektonikhs dynamikwn eggrafwn: To heitml den einai apla mia
scripting glwssa me dynamikous tupoys, isxyrh ston ypologismo
ekfrasewn, anadromikes roytines kai perasma ektetamenwn parametrwn,
alla xarakthrizetai epishs apo dynamikes eggrafes gia thn aytomath
diaxeirish twn dedomenwn enos session anejarthtoy mege8oys.
14.5. America On-line AOL Web server gia PostgreSQL
O dwrean emporikos webserver, AOLserver ekdoshs 2.3 yposthrizei
syndeseis sth bash PostgreSQL ekdosh 6.2.1 kai megaluterh. Gia
perissoteres plhrofories episkefteite to
� AOL Web Server <
http://www.aolserver.com>
14.6. Problem/Project Tracking System Application Tool gia PostgreSQL
Brisketai sto :
� <
http://www.homeport.org/~shevett/pts/>
14.7. Metatroph arxeiwn dbase dbf se PostgreSQL
To programma dbf2msql doyleuei acoga me mSQL kai PostgreSQL. Mporeite
na to breite sto
� <
ftp://ftp.nerosworld.com/pub/SQL/dbf2sql/>
� <
ftp://ftp.postgresql.org/pub/incoming/dbf2pg-3.0.tar.gz>
To programma ayto grafthke apo ton Maarten Boekhold, Faculty of
Electrical Engineering TU Delft, NL Computer Architecture and Digital
Technique section
�
[email protected]
Mporeite na xrhsimopoihsete epishs python gia na diabasete arxeia dbf
kai na ta fortwsete se mia bash dedomenwn postgres.
� Deite to <
http://www.python.org>
15. Ergaleio gia Sxediasmo/Ylopoihsh Web Basewn Dedomenwn gia thn
PostgreSQL - EARP
� <
http://www.oswego.edu/Earp>
� <
ftp://ftp.oswego.edu> ston katalogo 'pub/unix/earp'.
15.1. Ti einai to EARP ;
To EARP einai ena ergaleio gia sxediasmo/ylopoihsh Web basewn, poy
ka8etai panw apo to susthma bashs dedomenwn PostgreSQL. Sth
leitoyrgikothta toy perilambanontai:
� Ena susthma grafikou sxediasmou.
� Ena interface gia sendmail. (mporei na xeiristei ta eiserxomena kai
ejerxomena mail)
� Ena ayjhmeno mhxanismo asfaleias.
� Enan odhgo cgi.
15.2. Ylopoihsh
H kuria ylopoihsh toy EARP einai ena ektelesimo CGI poy trexei katw
apo to daimona http kai parexei prosbash sto diakomisth ths bashs
dedomenwn. Ola ta ergaleia sxediasmou einai xtismena mesa ston odhgo,
o sxediasmos den ginetai para mono se web. Ta idia ta ergaleia
apaitoun ena grafiko browser, h symbatothta twn antikeimenwn poy
sxediazontai me ta ergaleia einai anejarthta toy tropoy ylopoihshs,
basismena sto sxediasmo atomikwn protimhsewn.
15.3. Ti xreiazeste gia na trejete to EARP
To EARP prepei na trexei pi8ana se polles platformes me ligo h ka8oloy
metafora. Oi gnwstes platformes poy trexei einai oi ejhs:
� Solaris 2.5
� Linux 1.2.13+
� GNU C++
� PostgreSQL (ekdosh 1.01 / 1.02 )
� netsite server
� NCSA httpd
� GNU C++
� PostgreSQL (ekdosh 1.01 / 1.02 )
� NCSA httpd
� Apache httpd
H trexoysa ekdosh (1.3) toy Earp sxediasthke panw sthn ekdosh toy
libpq poy erxetai me thn PostgreSQL v1.01/1.02. An xrhsimopoieite
mia pio prosfath ekdosh ths Postgres, na perimenete pws to
programma 8a xreiastei merikes allages gia na doylecei swsta. Sthn
anaptyssomenh ekdosh (Earp 2.0), h yposthrijh libpq enswmatwnetai
san module.
15.4. Pws doyleuei ;
Ena apo ta kyriotera xarakthristika toy EARP einai oti xrhsimopoiei
Antikeimenostrafh me8odo gia na paragei html selides poy epikoinwnoun
me th bash. Oi perissoteres selides apotelountai apo diafora
antikeimena (objects). Ka8e antikeimeno paragetai apo kapoioy tupoy
ergaleio kai afou toy do8ei ena onoma, ta antikeimena syndeontai
metaju toys se mia allhloyxia poy mporei na kalestei apo to ergaleio
ths selidas (page tool). Ta antikeimena einai mporoun na
xrhsimopoih8oun apo pollaples selides. Yparxoyn basika ergaleia gia
HTML, Erwthseis (Querys), na pairnete times apo tis formes, na
formarete erwthseis kai antikeimena eisodoy, kai na syndeete metaju
toys ta antikeimena se alla antikeimena. Perissotera ejeligmena
ergaleia perilambanoyn to ergaleio gia mail kai to multithreaded
ergaleio erwthsewn.
Allo xarakthristiko toy EARP einai h ejtra asfaleia. H prosbash se
diafores perioxes toy systhmatos EARP mporei na perioristei me
diaforoys tropoys. Gia na eykolunei thn ejtra asfaleia, to EARP
elegxei gia ka8e sundesh sto susthma, kai prosdiorizei se poia ids kai
gkroyp anhkei o syndedemenos agent. H prosbash se perioxes ka8orizetai
jexwrista, kai o syndyasmos apofasizei an epitrepetai h prosbash se
mia sygkekrimenh perioxh toy Earp. Epipleon, o,ti apaiteitai gia na
ylopoihsete ta xarakthristika asfaleias einai enas http server poy
yposthrizei basiko (h kalutera) user authentication.
15.5. Pou 8a to brw ;
Mporeite na katebasete to EARP me anonymous ftp apo to
� <
ftp://ftp.oswego.edu> ston katalogo 'pub/unix/earp'.
16. PHP Hypertext Preprocessor, mia scripting glwssa gia thn Post�
greSQL h opoia enswmatwnetai se html kai ekteleitai sto Server
Ergaleio diasundeshs me to WWW
� <
http://www.php.net>
� <
http://www.vex.net/php>
To palio onoma einai Professional Home Pages (PHP 3) kai to neo
onoma einai PHP Hypertext Pre-Processor
� Yparxoyn Mirror sites se polles xwres opws to
www.COUNTRYCODE.php.net
� <
http://www.fe.de.php.net>
� <
http://www.sk.php.net>
� <
http://php.iquest.net/>
Gia erwthseis, steilte e-mail sto :
�
[email protected]
To PHP 3 einai mia scripting glwssa gia thn PostgreSQL h opoia
enswmatwnetai se html kai ekteleitai sto Server. Sas epitrepei na
grafete apla scripts sta arxeia .HTML paromoia me thn JavaScript, mono
poy anti8eta me thn JavaScript, to PHP 3 den ejartatai apo to browser.
To JavaScript einai mia glwssa h opoia enswmatwnetai se html kai
trexei sto client-meros enw to PHP 3 ekteleitai sto Server. To PHP 3
einai paromoio sthn sullhch me to proion ths Netscape LiveWire Pro. An
exete ta apaitoumena xrhmata, kai trexete ton emporiko Server ths
Netscape kai exete ena apo ta yposthrizomena leitoyrgika systhmata,
isws 8a prepei na rijete mia matia sto LiveWire Pro. An sas aresei to
dwrean, taxutata anaptyssomeno logismiko poy erxetai me olo ton phgaio
kwdika pi8ana na sas aresei to PHP 3.
16.1. Kuria xarakthristika
Yposthrijh stantar CGI, FastCGI kai Apache module. San ena stantar
programma CGI, to PHP 3 mporei na egkatasta8ei se opoiadhpote mhxanh
Unix kai na trejei se opoiodhpote Unix web server. Me thn yposthrijh
toy neoy stantar FastCGI, to PHP 3 exei to pleonekthma twn beltiwsewn
sthn taxuthta poy ofeilontai se ayto to mhxanismo. San Apache module,
to PHP 3 ginetai ejairetika isxyro kai tromaktika grhgorh enallaktikh
toy programmatismou se CGI.
� Katagrafh twn prosbasewn (Access Logging) Me th dynatothta
katagrafhs twn prosbasewn toy PHP 3, oi xrhstes mporoun na
synthrhsoyn to diko toys metrhth kai katagrafea prosbasewn (hit
counting and logging). De xrhsimopoiei me kanena tropo ta kentrika
arxeia prosbashs sto susthma, kai parexei parakolou8hsh prosbasewn
se pragmatiko xrono. To Log Viewer Script parexei mia suntomh
perilhch twn prosbasewn se ena sunolo selidwn gia ka8e jexwristo
xrhsth. Epipleon, to paketo mporei na ry8mistei wste na paragei ena
footer se ka8e selida to opoio deixnei plhrofories sxetika me thn
prosbash. Deite to telos ayths ths selidas gia ena paradeigma se
ayta.
� Elegxos prosbasewn Mia enswmatwmenh o8onh, basismenh sto web,
xeirizetai tis ry8miseis gia ton elegxo twn prosbasewn. Einai
dynato na dhmioyrghsete kanones gia oles h kapoies apo tis web
selides poy exei kapoio sygkekrimeno atomo, to opoio 8etei
diaforoys periorismous gia to poios mporei na blepei aytes tis
selides kai pws 8a tis blepei. Oi selides mporei na prostateuontai
me kwdiko, na einai plhrws apagoreymenes, na einai apenergopoihmenh
h katagrafh (logging disabled) kai akomh perissotera basismena sto
domain toy client, browser,th dieu8ynsh e-mail h akomh kai to
sxetiko keimeno.
� Yposthrijh gia Postgres H Postgres einai ena ejeligmeno dwrean
RDBMS. To PHP 3 yposthrizei thn enswmatwsh Postgres95 kai
PostgresSQL SQL erwthsewn katey8eian mesa se arxeia .html.
� Yposthrijh RFC-1867 Apostolh/Anebasma Arxeiwn (File Upload) To
Upload arxeiwn einai ena neo xarakthristiko sto Netscape 2.0.
Epitrepei stoys xrhstes na steiloyn (upload) ta arxeia toys sto web
server. To PHP 3 parexei to pragmatiko Mime decoding gia na to
kanei ayto na doylecei kai epishs parexei to plaisio gia na kanete
kati xrhsimo me to arxeio poy steilate, molos to labei o server.
� HTTP-based authentication control To PHP 3 mporei na xrhsimopoih8ei
gia na dhmioyrghsei mhxanismous authentication epi paraggelia,
basismenoys se HTTP, gia ton Apache web server.
� Metablhtes, Pinakes (arrays), Sysxetistikoi pinakes (Associative
Arrays) To PHP 3 yposthrizei metablhtes tupwn (typed variables),
pinakes kai akomh kai Perl-oeideis sysxetistikous pinakes
(associative arrays). Ola ayta mporoun na pernoun apo th mia web
selida sthn allh xrhsimopoiwntas tis me8odoys twn formwn, GET h
POST.
� Conditionals, While Loops To PHP 3 yposthrizei mia glwssa scripting
me ola ta xarakthristika ths C. Mporeite na exete syn8hkes
if/then/elseif/else/endif opws kai while loops kai dhlwseis
switch/case gia na perigracei th logikh roh toy pws 8a emfanizetai
h html selida.
� Extended Regular Expressions Ta Regular expressions
xrhsimopoiountai polu gia taytopoihsh (pattern matching),
antikatasthseis twn pattern kai geniko xeirismo alfari8mhtikwn. To
PHP 3 yposthrizei oloys toys koinous telestes kanonikwn ekfrasewn.
� Raw HTTP Header Control H dynatothta na kanoyme tis web selides na
stelnoyn eidika tropopoihmenes epikefalides HTTP analoga me kapoies
syn8hkes einai aparaithto gia sxediasmo web sites ychlou epipedoy.
Syxnh xrhsh aytou, einai h apostolh mias topo8esias: URL header gia
anakateu8ynsh toy pelath poy ekane thn klhsh pros allo URL. Mporei
na xrhsimopoih8ei epishs gia na apenergopoihsoyme to caching h na
epejergastoume thn teleytaia epikefalida enhmerwshs.
� Dhmioyrgia GIF eikonas epi topoy/ston aera (On-the-fly) To PHP 3
yposthrizei th GD biblio8hkh eikonwn toy Thomas Boutell h opoia sas
dinei th dynatothta na dhmioyrghsete GIF eikones epi topoy.
� Yposthrijh ISP "Safe Mode" To PHP 3 yposthrizei to monadiko "Safe
Mode" to opoio kanei asfales to na exete pollous xrhstes na trexoyn
PHP scripts ston idio server.
� Einai dwrean! Kai to teliko oysiastiko xarakthristiko. To paketo
einai entelws dwrean. Brisketai katw apo thn adeia GPL h opoia sas
epitrepei na xrhsimopoihsete to logismiko gia opoiodhpote skopo,
emporiko h opoiondhpote allo. Deite to keimeno ths dhmosias adeias
GNU gia perissoteres leptomereies.
16.2. Anagnwrish/Eyxaristies
* Megala kommatia aytou toy kwdika anaptux8hkan sto kai gia to
Panepisthmio toy Toronto. Polles eyxaristies ston Lee Oattes toy
Tmhmatos Anaptyjhs Diktuwn toy panepisthmioy gia tis synexeis
epoikodomhtikes kritikes toy.
* O kwdikas yposthrijhs ths PostgreSQL grafthke apo ton Adam Sussman
�
[email protected]
* Anari8mhtoi alloi, boh8hsan sto na elegx8ei kai na aposfalmatw8ei to
paketo.
16.3. PHP 3 - Suntomo Istoriko
To PHP jekinhse thn zwh toy ws cgi kwdikas epikalychs (cgi wrapper)
grammenos se Perl. Den proorizotan gia tipota pera apo proswpikh
xrhsh. To onoma toy prwtoy aytou paketoy htan Personal Home Page
Tools, kai argotera egine Personal Home Page Construction Kit.
Grafthke ena ergaleio gia na enswmatwnei eukola erwthseis SQL se web
selides. Htan basika ena akoma CGI wrapper poy metefraze erwthseis SQL
kai ekane thn dhmioyrgia formwn kai pinakwn apo tis erwthseis mia
eukolh ypo8esh. To ergaleio ayto onomasthke FI (Form Interpreter).
To PHP/FI ekdosh 2.0 einai ena eniaio programma, ej'oloklhroy
janagrammeno, poy apotelei ton syndyasmo twn duo parapanw paketwn.
Exei twra pia ejelix8ei se shmeio poy einai mia aplh programmatistikh
glwssa enswmatwmenh se arxeia HTML. To arxiko akrwnumio, PHP, emeine.
Den einai kan antiproswpeytiko pia. To PHP/FI xrhsimopoieitai
perissotero apo oloklhra web sites shmera, para gia mikres
egkatastaseis Proswpikwn Selidwn (Personal Home Page). Me opoio onoma,
ejaleifei thn anagkh gia ta polyari8ma mikra Perl cgi programmata,
epitrepontas sas na balete mikra scripts apey8eias sta HTML arxeia
sas. Ayto epitaxunei thn olikh taxuthta twn web pages sas, mia poy h
ka8ysterhsh toy klwnismou (forking) ths Perl se pollapla antitypa exei
ejaleif8ei. Kanei epishs eykoloterh thn diaxeirish megalwn web sites
topo8etwntas ola ta systatika mias web page se ena mono html arxeio.
Enswmatwnontas yposthrijh gia diafores baseis, kanei thn anaptyjh
selidwn-me-dynatothtes-xrhshs-bashs tetrimmenh. Polloi briskoyn thn
enswmatwmenh fush toy programmatos polu eykoloterh para to na
prospa8oun na dhmioyrgoun jexwrista arxeia HTML kai CGI.
Kata th diarkeia ayths ths tekmhriwshs, ka8e anafora sto PHP, FI h sto
PHP/FI milaei gia to idio pragma. Oi diafora metaju toy PHP kai toy FI
einai mono 8ema antilhchs. Kai ta duo xtizontai apo ton kwdika ths
idias dianomhs. Twra to PHP/FI metonomasthke se PHP 3.
16.4. Ti mporw na kanw, loipon, me to PHP/FI ;
To prwto pragma poy 8a parathrhsete an trejete mia selida mesw toy
PHP/FI einai oti pros8etei ena footer me plhrofories sxetika me ton
ari8mo prosbasewn sth selida sas (an exete metaglwttisei thn katagrafh
prosbasewn sto ektelesimo). Ayto einai ena polu mikro deigma toy ti
mporei na kanei gia sas to PHP/FI. Paizei ton ejisoy shmantiko rolo
toy metafrasth cgi se formes, apo ekei bgainei kai to FI meros toy
onomatos. Gia paradeigma, an dhmioyrghsete mia forma se mia apo tis
web selides sas, xreiazeste kati gia na epejergastei thn plhroforia se
ayth th forma. Akomh kai an apla 8elete na perasete plhroforia se mia
allh selida, 8a prepei na xrhsimopoihsete ena programma cgi gia na to
kanete ayto. To PHP/FI kanei ejairetika eukolo to na parete dedomena
apo mia forma kai na kanete kati me ayta.
16.5. Ena aplo paradeigma
As ypo8esoyme oti exete mia forma:
<FORM ACTION="/cgi-bin/php.cgi/~userid/display.html" METHOD=POST>
<INPUT TYPE="text" name="name">
<INPUT TYPE="text" name="age">
<INPUT TYPE="submit">
<FORM>
To arxeio display.html 8a mporouse na periexei kati san to parakatw:
< ?echo "Hi $ name, you are $ age years old!<p>" >
Einai toso aplo! To PHP/FI dhmioyrgei aytomata mia metablhth gia ka8e
input field sth forma sas. Mporeite tote na xrhsimopoihsete aytes tis
metablhtes sto arxeio ACTION URL.
To epomeno bhma afou exete katalabei pws na xrhsimopoieite tis
metablhtes einai na jekinhsete na paizete me merika tags logikhs rohs
stis selides sas. Gia paradeigma, an 8elate na emfanisete diaforetika
mhnumata basismena se kati poy eisagei o xrhsths, 8a xrhsimopoiousate
th logikh if/else. Sto parapanw paradeigma, mporoume na emfanisoyme
diaforetika pragmata me bash thn hlikia poy edwse o xrhsths allazontas
to arxeio display.html ws ejhs:
<?
if($age>50);
echo "Hi $name, you are ancient!<p>";
elseif($age>30);
echo "Hi $name, you are very old!<p>";
else;
echo "Hi $name.";
endif;
>
To PHP/FI parexei mia polu isxyrh scripting glwssa poy 8a kanei polu
perissotera ap' oti kanoyn ta parapanw apla paradeigmata. Deite to
tmhma sto "PHP/FI Script Language" gia perissoteres plhrofories.
Mporeite na ka8orisete epishs sto PHP/FI poios epitrepetai na exei
prosbash stis selides sas. Ayto epitygxanetai me mia enswmatwmenh
o8onh ru8mishs. Me ayth 8a mporousate gia paradeigma na ka8orisete oti
mono ta atoma apo sygkekrimena domains 8a mporoun na doyn tis selides
sas, h 8a mporousate na dhmioyrghsete ena kanona poy 8a prostateye
merikes selides sas me kwdiko. Deite to tmhma "Elegxos prosbasewn" gia
perissoteres plhrofories.
To PHP/FI einai epishs ikano na dexetai uploads arxeiwn apo
opoiodhpote web browser symbato me RFC-1867. Ayto to xarakthristiko
epitrepei se an8rwpoys na anebasoyn kai text kai binary arxeia. Me ton
elegxo prosbasewn toy PHP/FI kai tis logikes synarthseis, exete plhrh
elegxo panw sto poios epitrepetai na anebazei (upload) arxeia kai ti
mporei na kanei me to arxeio afou to anebasei. Deite to tmhma "File
Upload" gia perissoteres plhrofories.
To PHP/FI yposthrizei to paketo bashs dedomenwn PostgreSQL.
Yposthrizei enswmatwmenes SQL erwthseis sta .HTML arxeia sas. Deite to
antistoixo tmhma sthn "Yposthrijh ths PostgreSQL" gia perissoteres
plhrofories.
To PHP/FI yposthrizei epishs kai to paketo bashs dedomenwn mysql.
Yposthrizei enswmatwmenes SQL erwthseis sta .HTML arxeia sas. Deite to
antistoixo tmhma sthn "Yposthrijh ths mysql" gia perissoteres
plhrofories.
16.6. CGI Redirection
16.6.1. Shmeiwseis gia ton Apache 1.0.x
Enas kalos tropos na trejete to PHP/FI einai xrhsimopoiwntas ena cgi
redirection module me ton Apache server. Parakalw shmeiwste oti de
xreiazetai na anhsyxeite gia modules anakateu8ynshs an xrhsimopoieite
thn ekdosh toy Apache module toy PHP/FI. Yparxoyn duo apo ayta ta
modules anakateu8ynshs dia8esima. Ena apo ayta anaptux8hke apo ton
Dave Andersen
�
[email protected]
kai einai dia8esimo sto
� <
ftp://ftp.aros.net/pub/util/apache/mod_cgi_redirect.c>
kai to allo erxetai paketo me ton Apache kai legetai mod_actions.c.
Ayta ta modules einai ejairetika paromoia. Diaferoyn elafra sth
xrhsh toys. Kai ta duo exoyn testaristei kai doyleuoyn me
to PHP/FI.
Deite thn tekmhriwsh toy Apache gia to pws mporeite na pros8esete ena
module. Genika, pros8etete to onoma toy module se ena arxeio poy
onomazetai Configuration. H grammh poy prepei na pros8esete an 8elete
na xrhsimopoihsete to module mod_actions einai:
Module action_module mod_actions.o
An xrhsimopoieite to module mod_cgi_redirect.c pros8este ayth th
grammh:
Module cgi_redirect_module mod_cgi_redirect.o
Sth synexeia, metaglwttiste to httpd kai egkatasthste to. Gia na
ry8misete to cgi redirection xreiazetai eite na dhmioyrghsete ena neo
tupo mime sto arxeio sas mime.types eite na xrhsimopoihsete thn entolh
AddType sto arxeio sas srm.conf gia na pros8esete ton mime tupo. Gia
na pros8esete ton tupo mime 8a prepei na exete kati san to parakatw:
application/x-httpd-php phtml
An xrhsimopoieite to module mod_actions.c, xreiazetai na pros8esete
thn parakatw grammh sto arxeio sas srm.conf :
Action application/x-httpd-php /cgi-bin/php.cgi
An xrhsimopoieite to mod_cgi_redirect.c 8a prepei na pros8esete thn
parakatw grammh sto arxeio srm.conf :
CgiRedirect application/x-httpd-php /cgi-bin/php.cgi
Mhn xrhsimopoihsete taytoxrona kai ta duo mod_actions.c kai
mod_cgi_redirect.c.
Afou exete egkatasthsei ena apo ta cgi redirection modules kai ta
ry8misete swsta, 8a mporeite na prosdiorisete oti 8elete ena arxeio na
ginei parsed apo to php/fi apla allazontas to extension toy arxeioy se
.phtml. Epipleon, an pros8esete ena index.phtml sth grammh
DirectoryIndex toy arxeioy sas srm.conf, tote h top-level selida ston
katalogo 8a ginei aytomata parsed apo to php an to index arxeio
onomazetai index.phtml.
16.6.2. Netscape HTTPD
Mporeite na anakatey8unete aytomata tis aithseis gia arxeia me
sygkekrimenh katalhjh arxeioy wste na ta xeiristei to PHP/FI me th
xrhsh toy Netscape Server CGI Redirection module. Ayto to module einai
dia8esimo sto "File Archives" sth selida toy PHP/FI. To arxeio README
poy yparxei mesa sto paketo ejhgei ka8ara pws na to ry8misete gia
xrhsh me to PHP/FI.
16.6.3. NCSA HTTPD
O NCSA den yposthrizei pros to parwn modules, kai etsi gia na kanoyme
anakateu8ynsh cgi me ton server ayton, 8a xreiasteite na tropopoihsete
ton kwdika toy server sas. Mia dior8wsh/mpalwma (patch) poy to kanei
gia ton NCSA 1.5 diati8etai sta arxeia toy site toy PHP/FI.
16.7. Trexontas to PHP/FI apo th grammh entolwn
An xtisete th CGI ekdosh toy PHP/FI, mporeite na to xrhsimopoihsete
apo th grammh entolwn apla grafontas: php.cgi filename opoy to
filename einai to arxeio poy 8elete na kanete parse. Mporeite na
dhmioyrghsete epishs standalone PHP/FI scripts grafontas sthn prwth
grammh toy script sas to ejhs:
#!/usr/local/bin/php.cgi -q
To "-q" apagoreuei thn ektupwsh twn HTTP headers. Mporeite na afhsete
ejw ayth thn epilogh an 8elete.
17. Diasundesh me PostgreSQL mesw Python
O Python einai mia scripting glwssa, antikeimenostrafhs, se morfh
metafrasth (interpreted). Enas aplos sth xrhsh (eukolh suntajh, aples
kai profaneis dhlwseis) kai exei polles epektaseis gia thn dhmioyrgia
grafikwn diasyndesewn (GUIs), epikoinwnia me to WWW, klp. Enas ejypnos
web browser (tupoy HotJava) brisketai se anaptyjh (Noembrios. 1995)
kai ayto 8a anoijei stoys programmatistes polles portes. O python
einai pneymatikhs idiokthsias toy Stichting S Mathematisch Centrum,
Amsterdam. The Neverlands kai einai eleu8erhs anadianomhs.
Yposthrizei dynamiko fortwma antikeimenwn, klasewn, modules, kai
ejairesewn (exceptions). Profanhs einai h pros8hkh diasyndesewn me
nees biblio8hkes mesw kwdika C, pragma poy kanei ton Python eukola
katallhlo gia idiomorfes ry8miseis.
O Python einai mia scripting glwssa ychlou epipedoy me X interface.
O Python dianemetai me ta Linux cdroms poy perilambanoyn ta
perissotero stantar Python modules, mazi me modules gia diasundesh me
to sunolo Tix widget gia thn Tk.
To PyGreSQL einai ena python interface gia thn PostgreSQL. Enswmatwnei
thn biblio8hkh erwthsewn PostgreSQL gia na epitrepei thn eukolh xrhsh
twn panisxyrwn dynatothtwn ths PostgresSQL mesa apo Python scripts.
To PyGreSQL grafthke apo ton D'Arcy J.M. Cain kai ton Pascal Andre.
� Neo site ths PyGreSQL <
http://www.druid.net/pygresql/>
� Synthreitai apo ton D'Arcy at <
http://www.druid.net/~darcy/>
� To palio site einai sto
<
ftp://ftp.via.ecp.fr/pub/python/contrib/Database/PyGres95.README >
� D'Arcy J.M. Cain
[email protected]
� Pascal Andre
[email protected]
� Pascal Andre
[email protected]
17.1. Pou mporw na brw to PyGres ;
Ta home sites twn diaforetikwn paketwn einai:
� Python
<
ftp://ftp.python.org:/pub/www.python.org/1.5/python1.5b2.tar.gz>
� PyGreSQL <
ftp://ftp.druid.net/pub/distrib/PyGreSQL-2.1.tgz>
� Old site
<
ftp://ftp.via.ecp.fr/pub/python/contrib/Database/PyGres95-1.0b.tar.gz
>
8a prepei na cajete na breite kapoio mirror site konta sthn perioxh
sas. Anafer8eite sta plhroforiaka arxeia gia to pou 8a breite ayta
ta sites. To PyGres95 8a prepei na brisketai stoys katalogoys
contrib twn sites twn Python kai PostgreSQL.
17.2. Plhrofories kai yposthrijh
An xreiazeste perissoteres plhrofories gia ayta ta paketa,
episkefteite parakalw ta web sites toys:
� Python : <
http://www.python.org/>
� PostgreSQL :
<
http://epoch.cs.berkeley.edu:8000/postgres95/index.html>
� PyGreSQL <
ftp://ftp.druid.net/pub/distrib/PyGreSQL-2.1.tgz>
� Old site PyGreSQL :
<
http://www.via.ecp.fr/via/products/pygres.html>
Gia yposthrijh :
� Lista allhlografias gia PyGreSQL. Mporeite na eggrafeite stelnontas
mhnyma sto
[email protected] me thn grammh "subscribe pygresql
name@domain" sto swma toy mhnumatos antika8istwntas to
"name@domain" me thn dikh sas hlektronikh dieu8ynsh allhlografias.
� Newsgroup for Python : newsgroup comp.lang.python
� PyGreSQL : epikoinwnhste me ton Andre sto
[email protected] gia
anafores sfalmatwn, idewn, sxoleiwn
18. Epikoinwnia metaju PostgreSQL kai WWW - WDB-P95
18.1. Sxetika me to wdb-p95
WDB-P95 - Ena Web interface gia baseis PostgreSQL apo ton J. Douglas
Dunlop Brisketai sto
� Neo WDB apo ton J Rowe brisketai sto
<
http://www.lava.net/beowulf/programming/wdb>
� Nees ekdoseis toy WWW-WDB sto <
http://www.eol.ists.ca/~dunlop/wdb-
p95/>
� Gia erwthseis h gia eggrafh stis Listes Allhlografias,
epikoinwnhste me ton
[email protected]
Einai mia tropopoihmenh ekdosh toy wdb-1.3a2 poy parexei mia sundesh
sto WWW gia thn PostgreSQL. Ayth h ekdosh apaitei epishs ena Browser
ikano na xeirizetai pinakes HTML gia thn ejodo se pinakes (tabular
output). Ayto den apaiteitai apo to arxiko wdb kai mporei na
epanafer8ei sthn palia morfh toy sxetika eukola.
Mporeite na dokimasete ta CASI Tape kai Image Query. Mporeite na
rijete mia grhgorh matia sto Form Definition File (FDF) poy
xrhsimopoihsa gia na ftiajw ta CASI Tape kai Image Query epishs, poy
perilambanei ena JOIN 2 pinakwn.
Ayth h ekdosh periexei ola ta aparaithta arxeia gia thn egkatastash
kai ektelesh toy WDB-P95 san diasundesh me tis PostgreSQL baseis sas.
H metafora toy systhmatos se allh bash 8a prepei na einai sxetika
eukolh - ypo thn proupo8esh pws yposthrizei stantar SQL kai exei
interface se Perl.
18.2. Einai aparaithto o diakomisths ths PostgreSQL, to pgperl, kai
to httpd na einai ston idio host;
Oxi - o diakomisths ths PostgreSQL diakomisths de xreiazetai na einai
sto idio host. To WDB-P95 epeidh kaleitai apo ton http daimona, prepei
na einai sto idio host - kai ka8ws to WDB-P95 grafthke gia na
xrhsimopoiei to Pg.pm - to pgperl prepei na einai sto idio host
epishs. To Pgperl grafthke xrhsimopoiwntas th biblio8hkh libpq, etsi
mporei na exei prosbash se opoiodhpote diakomisth PostgreSQL
opoydhpote sto diktyo, opws opoiosdhpote allos pelaths PostgreSQL.
Opws fainetai parakatw
(WWW Client (Netscape)) => (HTTP Server (NCSA's http) + WDB-P95 +
pgperl + libpq)=> (PostgreSQL server)
Oi paren8eseis () anaparistoun mhxanhmata.
Ka8e mhxanhma mporei na einai diaforetikou tupoy : NT, SUN, HP, ...
alla xreiazeste th biblio8hkh diasundeshs libpq gia ton tupo
mhxanhmatos poy skopeuete na xrhsimopoihsete to WDB-P95, gia na
metaglwttisete to pgperl. (To susthma sxediasthke gia na xrhsimopoiei
HTML pinakes gi' ayto einai protimoteros enas prosfatos WWW client).
19. Programmatistikes diasyndeseis gia "C", "C++", ESQL/C kai
Dyadikoi Telestes gia thn PostgreSQL
19.1. Diasundesh glwssas "C" me thn PostgreSQL
Symperilambanetai sth dianomh kai onomazetai 'libpq'. Einai paromoio
me ta Oracle OCI, Sybase DB-lib kai tis biblio8hkes Informix CLI .
19.2. Interface glwssas "C++" gia thn PostgreSQL
Symperilambanetai sth dianomh kai onomazetai 'libpq++'.
19.3. ESQL/C gia PostgreSQL
O 'Enswmatwmenos prometaglwttisths C' gia thn PostgreSQL, ESQL/C einai
opws to Oracle Pro*C, kai to Informix ESQL/C. To PostgreSQL ESQL/C
einai ena programmatistiko periballon diasundeshs (API) meSQL, poy
epitrepei ston programmatisth C na dhmioyrgei eidikes efarmoges me
dynatothtes diaxeirishs ths bashs dedomenwn. Sas epitrepei na
xrhsimopoieite mia glwssa triths geneas me thn opoia eisaste
ejoikeiwmenos kai na ekmetalleueste parallhla kai ta pleonekthmata ths
Domhmenhs Glwssas Erwthsewn (SQL).
To ESQL/C apoteleitai apo ta parakatw kommatia logismikou:
� Tis biblio8hkes ESQL/C me synarthseis C poy dinoyn prosbash pros
ton diakomisth ths bashs dedomenwn (database server).
� Ta arxeia epikefalidwn toy ESQL/C poy dinoyn toys orismous gia tis
domes dedomenwn, tis sta8eres, kai makroentoles xrhsimes gia to
programma ESQL/C.
� O proepejergasths ESQL/C, einai enas proepejergasths phgaioy kwdika
poy metatrepei ena C arxeio poy periexei entoles SQL se ena
ektelesimo arxeio.
Brisketai sto
� H ESQL/C gia thn PostgreSQL perilambanetai stis diafores dianomes.
� To kurio site einai <
ftp://ftp.lysator.liu.se/pub/linus>
� Email :
[email protected]
19.4. Dyadikoi Telestes gia thn PostgreSQL
Oi dyadikoi telestes grafthkan apo ton Nicolas Moldavsky
�
[email protected]
Oi "C" synarthseis poy ylopoioun toys dyadikous telestes (AND, OR,
XOR, symplhrwma ws pros 2) se pgsql. Mporeite na ta katebasete me
anonymous FTP apo to
� <
ftp://ftp.overnet.com.ar/pub/utils/linux/bitpgsql.tgz>
Perilambanetai Makefile gia Linux.
20. Japanese Kanji Kwdikas gia thn PostgreSQL
Brisketai sto parakatw site
� <
ftp://ftp.sra.co.jp/pub/cmd/postgres/>
21. Metafora ths PostgreSQL se Windows 95/Windows NT
H metafora sta Windows 95/Windows NT einai se ejelijh. H metafora
ginetai xrhsimopoiwntas to gcc kai to gmake gia Win NT/95. Gia na
metaglwttisoyme ton phgaio kwdika se win32 xrhsimopoioume to programma
gnu-win32. To GNU gcc einai dia8esimo gia win32. Phgainete sto site -
� <
http://www.cygnus.com/misc/gnu-win32>
kai katebaste to arxeio cdk.exe (ayto-aposympiezomeno arxeio gia
gnu-win32)
H metafora mporei epishs na ginei xrhsimopoiwntas to akoloy8o ergaleio
"Unix-Emulator on NT" apo to
� <
http://www.softway.com>
22. Listes allhlografias
22.1. Apokthste ena dwrean logariasmo e-mail
Elegjte tis dwrean prosfores - apokthste dwrean logariasmous e-mail
apo ta
� Yahoo <
http://www.yahoo.com> klikarete sto e-mail
� Lycos <
http://www.lycos.com> klikarete stoys neoys logariasmous e-
mail (new email accounts)
� hotmail <
http://www.hotmail.com> klikarete stoys neoys
logariasmous e-mail (new email accounts)
Grafteite sth lista allhlografias ths PostgreSQL kai to Yahoo sas
dinei thn epipleon dynatothta na dhmioyrghsete ena jexwristo fakelo
gia ta e-mails ths PostgreSQL, etsi wste ta na mhn anakatwnontai me
ta alla proswpika sas e-mail. Epilejte to menou Email- > Options- >
Filters kai dialejte jexwristo fakelo gia email. Me ayto to
logariasmo e-mail mporeite na pairnete h na stelnete mail apo
opoydhpote ston kosmo efoson exete prosbash se web selida.
An exete kapoio allo e-mail, mporeite na xrhsimopoihsete thn epilogh
"Mail Filters" gia na lambanete aytomata ta mails ths PostgreSQL se
jexwristo fakelo. Me ayto ton tropo ta mails sas einai kalutera
organwmena kai apofeugete kai to anakatema toys.
22.2. Agglikh Lista Allhlografias
Deite tis Listes Allhlografias sthn kentrikh selida sto web sto :
� <
http://www.postgresql.org/>
� Erwthseis mesw Email sto:
[email protected]
� Developers
[email protected]
� Port specific questions
[email protected]
� Documentation questions
[email protected]
8a labete apanthseis mesw e-mail se ligotero apo mia mera!!
Mporeite na grafteite epishs se listes allhlografias. Deite epishs to
parapanw tmhma 'Apokthste ena dwrean logariasmo e-mail'. Gia na
grafteite h na jegrafteite apo mia lista, steilte mail sta
�
[email protected]
�
[email protected]
�
[email protected]
�
[email protected]
To kyriws tmhma (body) toy mhnumatos 8a periexei mono thn akoloy8h
grammh
subscribe
(h)
unsubscribe
22.3. Arxeio ths Listas Allhlografias
Krateitai arxeio twn listwn allhlografias se html morfh stis parakatw
diey8unseis -
� Dia8esimh lista me bash tis diey8unseis mesw MHonarc kai WWW sto
<
http://www.postgresql.org/mhonarc/pgsql-questions>
� <
ftp://ftp.postgresql.org> ston katalogo /pub/majordomo
22.4. Ispanikh Lista Allhlografias
Yparxei twra kai mia "anepishmh" lista gia thn postgreSQL sta
ispanika. Deite epishs to parapanw tmhma 'Dwrean Logariasmos gia na
organwsete ta e-mails ths PostgreSQL' . Gia na eggrafeite, prepei na
steilete ena mhnyma sto:
�
[email protected]
To kyriws tmhma (body) toy mhnumatos 8a periexei mono thn akoloy8h
grammh:
inscripcion pgsql-ayuda
23. Tekmhriwsh kai Bibliografia
23.1. Odhgoi ekma8hshs kai Egxeiridia
Ta parakatw symperilambanontai sth dianomh ths PostgreSQL se morfh
postscript kai se unix selides boh8eias (man-pages). An exete
prosbash sto internet, mporeite na breite ta keimena poy anaferontai
parakatw sto <
http://www.postgresql.org/docs>
� "Odhgos Egkatastashs"
� "Odhgos xrhshs" gia thn PostgreSQL
� "Odhgos anaptyjhs-ylopoihshs" me leptomereies gia tis eswterikes
leitoyrgies ths PostgreSQL.
� Online egxeiridia.
� Online egxeiridia se HTML morfh.
� Epishs, egxeiridia se morfh Postscript gia ektupwsh.
23.2. Online Tekmhriwsh
� Lista kai perigrafh twn proka8orismenwn tupwn dedomenwn kai
telestwn
Einai tmhma twn entolwn PSQL sthn ekdosh 6.4.
� Lista twn yposthrizomenwn SQL lejewn kleidia (keywords)
Yparxei ena script ston katalogo /tools gia na to kanete ayto
� Listes twn yposthrizomenwn entolwn -
Xrhsimopoihste thn entolh psql \h
� Basikes ennoies sxesiakhs bashs dedomenwn gia PostgreSQL
(ylopoihsh) kai arketa online paradeigmata (erwthseis) -
Koitajte sta regression tests sto src/test. Ekei 8a breite toys katalogoys
regress/sql kai suite/*.sql.
� Odhgos ekma8hshs gia thn PostgreSQL.
8a breite SQL scripts gia ekma8hsh ths SQL ston katalogo src/tutorial
Deite epishs to "Odhgos ekma8hshs SQL gia arxarioys" sto Appendix B
aytou toy keimenoy ``''
23.3. Xrhsimh Bibliografia Anaforas
� "Understanding the New SQL: A Complete Guide" - apo toys Jim Melton
kai Alan R.Simon
To Morgan Kaufman Publisher einai ena apo ta kalutera biblia gia SQL. Asxoleitai me thn SQL92.
� "A Guide to THE SQL STANDARD" - apo ton C.J.Date
H etaireia Addison-Wesley Publishing exei epishs polu kala biblia. Polu dhmofilh biblia gia SQL.
� SQL - The Standard Handbook, Noembrios 1992
Stephen Cannan kai Gerard Otten
McGraw-Hill Book Company Europe , Berkshire, SL6 2QL, England
� SQL Instant Reference, 1993
Martin Gruber, Technical Editor: Joe Celko
SYBEX Inc. 2021 Challenger Drive Alameda, CA 94501
� C.J.Date, "An introduction to Database Systems" (6th Edition),
Addison-Wesley, 1995, ISBN 0-201-82458-2
Ayto to biblio einai h Biblos ths Diaxeirishs Systhmatwn basewn Dedomenwn.
Periexei plhrofories gia kanonikopoihsh, SQL, recovery, concurrency, asfaleia,
integrity, kai extensions sto arxiko sxesiako montelo, trexonta 8emata
opws client/server systhmata kai Antikeimenostrafh montela. Polles
anafores symperilambanontai gia osoys 8eloyn na ma8oyn perissotera. To synistoume stoys perissoteroys xrhstes.
� Stefan Stanczyk, "Theory kai Practice of Relational Databases", UCL
Press Ltd, 1990, ISBN 1-857-28232-9
Periexei leptomereies me 8ewria sxesiakwn basewn, sxesiakh algebra, calculus
kai kanonikopoihsh. Alla den kaluptei 8emata toy pragmatikou kosmoy kai paradeigmata pio sun8eta. To synistoume stoys perissoteroys xrhstes.
� "The Practical SQL Handbook" Trith Ekdosh, Addison Wesley
Developers Press ISBN 0-201-44787-8
To synistoume stoys perissoteroys xrhstes.
� Michael Stonebraker, "Readings in Database Systems", Morgan
Kaufmann, 1988, ISBN 0-934613-65-6
To biblio einai mia syllogh apo xartia poy exoyn dhmosieytei ola ta xronia sxetika me baseis. Den einai gia ton aplo xrhsth alla einai mia kalh anafora gia proxwrhmenoys (metaptyxiakous) foithtes h programmatistes systhmatwn basewn dedomenwn.
� C.J.Date, "Relational Database - Selected Readings", Addison-
Wesley, 1986, ISBN 0-201-14196-5
To biblio einai mia syllogh apo xartia poy exoyn dhmosieytei ola ta xronia sxetika me baseis. Den einai gia ton aplo xrhsth alla einai mia kalh anafora gia proxwrhmenoys (metaptyxiakous) foithtes h programmatistes systhmatwn basewn dedomenwn.
� Nick Ryan kai Dan Smith, "Database Systems Engineering",
International Thomson Computer Press, 1995, ISBN 1-85032-115-9
Ayto to biblio exei leptomereies gia me8odoys prosbashs, kai texnikes apo8hkeyshs.
� Bipin C. Desai, "An introduction to Database Systems", West
Publishing Co., 1990, ISBN 0-314-66771-7
Den einai gia ton aplo xrhsth alla einai mia kalh anafora gia proxwrhmenoys (metaptyxiakous) foithtes h programmatistes systhmatwn basewn dedomenwn.
� Joe Celko "INSTANT SQL Programming"
Wrox Press Ltd.
Unit 16, 20 James Road, Tyseley
Birmingham, B11 2BA, England
1995
� Michael Gorman "Database Management Systems: Understanding kai
Applying Database"
Technology
QED kai John Wiley
1991
� Michael Gorman "Enterprise Database for a Client/Server
Environment" QED kai John Wiley
Paroysiazei tis apaithseis gia na ftiajete client/server efarmoges basewn
mesw repository metamontelwn kai ths xrhshs ANSI stantar SQL
1993
Ekatontades alloi titloi einai dia8esimoi gia SQL ! Koitajte sta
bibliopwleia.
23.4. Keimena prodiagrafwn ANSI/ISO SQL - SQL 1992, SQL 1998
Mporeite na breite keimena prodiagrafwn ANSI/ISO SQL sta parakatw
sites -
� <
http://www.naiua.org/std-orgs.html>
� <
http://www.ansi.org/docs> kai klikarete sto arxeio cat_c.html kai
cajte gia "Database SQL"
� SQL92 standard <
http://www.jcc.com> kai klikarete sto arxeio
sql_stnd.html
� ANSI/ISO SQL prodiagrafes
<
http://www.contrib.andrew.cmu.edu/~shadow/sql.html> Edw 8a breite
egxeiridio gia SQL.
23.5. Suntajh ANSI/ISO SQL 1992
Deite to Appendix A aytou toy keimenoy ``''
23.6. Suntajh ANSI/ISO SQL 1998
Oi prodiagrafes SQL 1998 (SQL 3) einai akomh ypo anaptyjh. Deite to
'Electronic Access to the SQL3 Working Draft' aytou toy keimenoy sto
``''
23.7. Odhgos ekma8hshs SQL gia arxarioys
Deite to Appendix B aytou toy keimenoy ``''
23.8. Proswrinh epektash (extension) sto SQL92
� Keimeno gia proswrinh epektash SQL-92
<
ftp://FTP.cs.arizona.edu/tsql/tsql2/>
� Proswrines prodiagrafes SQL-3
<
ftp://FTP.cs.arizona.edu/tsql/tsql2/sql3/>
O katalogos periexei tis prodiagrafes ths glwssas gia thn proswrinh
epektash sth stantar glwssa SQL-92. Ayth h nea glwssa onomazetai
TSQL2.
Oi prodiagrafes ths glwssas poy paroysiazontai edw einai h telikh
ekdosh ths glwssas.
H allhlografia mporei na stalei ston proedro toy TSQL2 Language Design
Committee, Richard T.Snodgrass, Department of Computer Science,
University of Arizona, Tucson, AZ 85721,
�
[email protected]
Oi 8ygatrikes kai oi diey8unseis e-mail twn melwn toy TSQL2
Language Design Committee mporoun na bre8oun se jexwristo tmhma sto
telos twn prodiagrafwn ths glwssas.
Ta periexomena aytou toy katalogoy einai opws paroysiazontai parakatw.
spec.dvi,.ps Prodiagrafes Glwssas TSQL2, ekdo8hke to Septembrio toy
1994
bookspec.ps Prodiagrafes ths Glwssas TSQL2, opws emfanisthkan sto
biblio TSQL2, poy ekdo8hke to Septembrio toy 1995 (deite parakatw).
sql3 allagh twn protasewn poy ypoblh8hkan stis epitropes
ANSI kai ISO SQL3.
Mazi me tis prodiagrafes ths glwssas exei sysxetistei mia syllogh apo
sxolia poy aforoun se apofaseis sxediasmou, paroxh paradeigmatwn, kai
apoceis gia to pws mporei na ylopoih8ei h glwssa. Ayta ta sxolia htan
arxika protaseis sthn epitroph toy TSQL2 Language Design. Twra
ejyphretoun ena sygkekrimeno skopo: na parexoyn paradeigmata toy oti
exei ftiaxtei, w8hsoyn tis polles apofaseis poy par8hkan kata to
sxediasmo ths glwssas, kai na sygkrinoyn thn TSQL2 me polles alles
protaseis ths glwssas poy exoyn ginei ta thn teleytaia dekapentaetia.
8a prepei na do8ei emfash oti ayta ta sxolia den einai tmhma twn
prodiagrafwn ths glwssas TSQL2, alla th symplhrwnoyn kai anaptussoyn
me bash ayta. Oi katallhles prodiagrafes ths glwssas einai h teleytaia
lejh sthn TSQL2.
Ta sxolia, mazi me tis prodiagrafes ths glwssas , arketoi deiktes
(indexes), kai allo yliko yposthrijhs, exoyn ekdo8ei se ena biblio:
Snodgrass, R.T., editor, The TSQL2 Temporal Query Language, Kluwer
Academic Publishers, 1995, 674+xxiv selides.
Oi kritikes emfanizontai sto biblio se mia syntomeymenh morfh. Oi
kritikes parexontai plhreis se ayton katalogo sto arxeio eval.ps
To arxeio tl2tsql2.pl einai ena programma se prolog poy metafrazei thn
epitrepomenh proswrinh logikh se TSQL2. Ayto to programma grafthke apo
ton Michael Boehlen
�
[email protected]
Mporeite na epikoinwnhsete mazi toy gia ena paper poy perigrafei
ayth th metafrash. Ayto einai mallon mia dated ekdosh toy
programmatos. Newteres ekdoseis einai dia8esimes sto
� <
http://www.cs.auc.dk/general/DBS/tdb/TimeCenter/Software>
(ta systhmata TimeDB kai Tiger).
23.9. Tmhma 0 - Apoktwntas ta keimena ISO/ANSI SQL
Ayto to keimeno sas deixnei pws na apokthsete (nomima) ena antigrafo
toy protupoy SQL-92 kai toy "trexontos" SQL3 Working Draft.
Sto ANSI protypo exei pneymatika dikaiwmata h ANSI, sto protypo ISO h
ISO.
Yparxoyn duo (2) trexonta protypa SQL, h dhmosieysh ANSI kai h
dhmosieysh ISO. Ta duo ayta protypa einai oloidia lejh pros lejh ektos
apo tetrimmena zhthmata opws o titlos toy keimenoy, oi epikefalides
ths selidas, h frash "International Standard" anti gia "American
Standard", kai loipa.
Agorazontas to protypo SQL-92
To protypo ISO standard, ISO/IEC 9075:1992, Information Technology -
Database Languages - SQL, einai dia8esimo (Martios, 1993) sto ANSI :
American National Standards Institute
1430 Broadway
New York, NY 10018 (USA)
Phone (sales): +1.212.642.4900
kai kostizei US$230.00. H ANSI ekdosh, ANSI X3.135-1992, American
National Standard gia Systhmata Plhroforiwn - Database Language SQL,
den htan dia8esimo pros pwlhsh otan grafthke ayto to keimeno, alla
anamenotan na einai dia8esimo metaju telh Martioy kai arxes Maioy,
1993). To kostos toy anamenetai gurw sta US$225.00.
An agorasete kapoio apo ta keimena apo to ANSI, 8a exete ejtra xrewsh
gia ejoda metaforas 7% epipros8eta (dhladh, peripoy US$9.10). Gia
xwres ejwterikou ta ejoda metaforas 8a einai anamfibola akomh
perissotera. To ANSI apaitei ka8e paraggelia na synodeuetai apo ena
xarti paraggelias ths etaireias. Enallaktika, mporeite na steilete ena
tsek amerikanikhs trapezas h se amerikanika dolaria, ta opoia 8a
metrh8oun prin na stal8ei h paraggelia sas. (Yparxei mia ejairesh: an
h etaireia sas einai enswmatwmeno melos toy ANSI, tote to ANSI 8a sas
steilei ta keimena kai 8a xrewsei thn etaireia sas.)
To protypo ISO einai epishs dia8esimo ektos Amerikhs apo e8nika topika
tmhmata (tmhmata protypopoihshs ana xwra) poy einai melh eite toy ISO
(Die8nhs Organismos Typopoihshs - International Organization for
Standardization) h toy IEC (Die8nhs Hlektrotexnikh Epitroph -
International Electrotechnical Commission).
Antigrafa ths lista twn e8nikwn tmhmatwn kai oi diey8unseis toys einai
dia8esimes apo to ANSI h apo alla e8nika tmhmata. Einai epishs
dia8esima apo to ISO:
International Organization for Standardization
Central Secretariat
1, rue de Varembi
CH-1211 Genhve 20
Switzerland
An protimate na paraggeilete to protypo me pio boliko kai grhgoro
tropo, 8a prepei na plhrwsete gia na exete ayto to pronomio. Mporeite
na paraggeilete to ISO/IEC 9075:1992, Information Technology -
Database Languages - SQL, apo to:
Global Engineering Documents
2805 McGaw Ave
Irvine, CA 92714 (USA)
USA
Thlefwno (apo opoiadhpote perioxh): +1.714.261.1455
Thlefwno (mono gia Amerikh): (800)854-7179
kai kostizei US$308.00. De jerw an se ayth thn timh symperilambanontai
ta ejoda apostolhs h oxi, alla ypo8etw oti h apostolh sto ejwteriko
(toylaxiston) 8a kostizei perissotero. Mporoun na sas steiloyn to
keimeno arketa grhgora kai dexontai kai tis "pio gnwstes pistwtikes
kartes". To Global den exei akomh thn ANSI ekdosh oute exoyn timh h
mia anamenomenh hmeromhnia (an kai thn perimenw oti se merikes ebdo�
mades meta th dhmosieysh toy ANSI kai me timh gurw sta US$300.00).
Agorazontas ena antigrafo toy SQL3 Working Draft
Mporeite na agorasete mia ektupwsh toy SQL3 working draft apo to ANSI
X3 Secretariat, CBEMA (Computer kai Business Equipment Manufacturers
Association). Synh8ws dia8etoyn tis "pio prosfates ekdoseis" toy SQL3
working draft kai tis pwloun apo US$60.00 mexri US$65.00. Mporeite na
epikoinwnhsete me to CBEMA sto:
CBEMA, X3 Secretariat
Attn: Lynn Barra
1250 Eye St.
Suite 200
Washington, DC 20005 (USA)
Mporeite na epikoinwnhsete me th Lynn Barra thlefwnikws sto
+1.202.626.5738 gia na zhthsete ena antigrafo, an kai to mail einai
protimotero.
Hlektronikh prosbash sto SQL3 Working Draft
H pio prosfath ekdosh (th stigmh ths syggrafhs toy keimenoy) toy SQL3
(kai gia ANSI kai ISO) working draft (kai ola ta tmhmata toy) einai
dia8esimh me "anonymous ftp" h me "ftpmail" apo to:
gatekeeper.dec.com
sto katalogo
/pub/standards/sql/
Se ayton ton katalogo yparxoyn polla arxeia. Yparxoyn arxeia
PostScript kai "plain text" (oxi aparaithta formarismena, alla dia�
bazontai se mia o8onh xwris idiaitero logismiko).
Genika, mporeite na breite arxeia me onomata opws:
sql-bindings-mar94.ps
sql-bindings-mar94.txt
sql-cli-mar94.ps
sql-cli-mar94.txt
sql-foundation-mar94.ps
sql-foundation-mar94.txt
sql-framework-mar94.ps
sql-framework-mar94.txt
sql-psm-mar94.ps
sql-psm-mar94.txt
Ka8ws paragontai nees ekdoseis twn keimenwn, to "mar94" 8a allazei gia
na deijei th nea hmeromhnia ths dhmosieyshs (p.x., "aug94" einai h
anamenomenh hmeromhnia ths epomenhs dhmosieyshs meta to "mar94").
Epishs, gia toys anagnwstes poy den mporoun na exoyn mia lista toy
katalogoy me FTP, exoyme topo8ethsei ston idio katalogo ena arxeio me
to onoma:
ls
Ayto to arxeio (ekplhjh!) periexei th lista toy katalogoy.
Anaktwntas Arxeia katey8eian me xrhsh toy ftp
Ayto einai ena paradeigma gia to pws na xrhsimopoieite to FTP.
Sygkekrimena, deixnei pws na synde8eite sto gatekeeper.dec.com, na
pate ston katalogo opoy fylassetai to basiko keimeno, kai na
metaferete to keimeno sto mhxanhma sas. Shmeiwste oti to mhxanhma sas
prepei na exei prosbash sto Internet gia na to kanete ayto. To login
einai 'ftp' kai o kwdikos einai h email dieu8ynsh sas (ayto einai
gnwsto kai san anwnymo ftp 'anonymous ftp'). H entolh 'type binary'
xrhsimopoieitai gia na sigoyrecete oti de 8a xasete kapoia bits apo
to(a) arxeio(a) poy 8a labete. H 'get' katebazei ena arxeio th fora.
Ta sxolia sto parakatw script einai mesa se angle brackets < san ayta
> .
% ftp gatekeeper.dec.com
Connected to gatekeeper.dec.com.
220- *** /etc/motd.ftp ***
Gatekeeper.DEC.COM is an unsupported service of DEC Corporate Research.
<...this goes on for a while...>
220 gatekeeper.dec.com FTP server (ekdosh 5.83 Sat ... 1992) ready.
Name (gatekeeper.dec.com:<yourlogin here>): ftp <anonymous also works>
331 Guest login ok, send ident as password.
Password: <enter your email address here >
230 Guest login ok, access restrictions apply.
Remote system type is UNIX. <or whatever>
Using binary mode to transfer files.
ftp> cd pub/standards/sql
250 CWD command successful.
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 9529
-r--r--r-- 1 root system 357782 Feb 25 10:18 x3h2-93-081.ps
-r--r--r-- 1 root system 158782 Feb 25 10:19 x3h2-93-081.txt
-r--r--r-- 1 root system 195202 Feb 25 10:20 x3h2-93-082.ps
-r--r--r-- 1 root system 90900 Feb 25 10:20 x3h2-93-082.txt
-r--r--r-- 1 root system 5856284 Feb 25 09:55 x3h2-93-091.ps
-r--r--r-- 1 root system 3043687 Feb 25 09:57 x3h2-93-091.txt
226 Transfer complete.
ftp> type binary
200 Type set to I.
ftp> get x3h2-93-082.txt
200 PORT command successful.
150 Opening BINARY mode data connection for x3h2-93-082.txt (90900 bytes).
226 Transfer complete.
90900 bytes received in 0.53 seconds (166.11 Kbytes/s)
ftp> quit
% <to arxeio einai twra ston katalogo sas san x3h2-93-082.txt>
Anaktwntas Arxeia xwris apey8eias yposthrijh ftp
H Digital Equipment Corporation, opws kai polles alles etaireies,
parexei yphresia ftp email. H apanthsh mporei na xreiastei gia na
ftasei arketes meres, alla parexei mia yphresia isodunamh me to ftp
gia aytous poy den exoyn apey8eias ftp prosbash sto Internet. H
dieu8ynsh toy server einai:
[email protected]
To parakatw script 8a anakthsei to PostScript arxeio ths teleytaias
ekdoshs toy SQL3 keimenoy:
reply
[email protected]
connect gatekeeper.dec.com anonymous
binary
compress
To parakatw script 8a anakthsei to PostScript arxeio ths teleytaias
ekdoshs toy SQL3 keimenoy:
reply
[email protected]
connect gatekeeper.dec.com anonymous
binary
compress
uuencode
chdir /pub/standards/sql
get x3h2-93-091.ps
quit
H prwth grammh apo tis entoles toy script zhta apo to diakomisth
(server) na sas epistrecei ta zhtoumena arxeia. 8a prepei na
antikatasthsete to "
[email protected]" me thn
dieu8ynsh sas sto Internet. To arxeio se ayto to paradeigma,
x3h2-93-091.ps, epistrefetai se morfh "compress"ed "uuencode"d san 34
diaforetika mhnumata email. An to periballon sas den parexei ergaleia
gia epanakataskeyh tetoiwn arxeiwn, tote mporeite na anakthsete to
arxeio san plain text me to akoloy8o script:
reply
[email protected]
connect gatekeeper.dec.com anonymous
chdir /pub/standards/sql
get x3h2-93-091.ps
quit
Alla sas proeidopoioume, to arxeio .ps polu pi8ana 8a stal8ei se
perissotera apo 70 tmhmata!
Gia na anakthsete opoiodhpote allo sygkekrimeno arxeio, ektos toy
x3h2-93-091.ps, apla antikatasthste to "x3h2-93-091.ps" me to onoma
toy arxeioy poy epi8ymeite. Gia na parete th lista olwn twn
dia8esimwn arxeiwn toy katalogoy, antikatasthste to "get
x3h2-93-091.ps" me to "dir".
23.10. Tmhma 1 - Trexoysa katastash toy ISO/ANSI SQL
Ayto to kefalaio einai mia phgh plhroforias sxetika me thn protyph
diergasia SQL kai thn trexoysa katastash ths.
Trexoysa katastash:
H anaptyjh toy einai ypo ejelijh gia na epekteinei thn SQL se mia
oloklhrwmenh ypologistika glwssa gia ton ka8orismo kai diaxeirish
persistent, sun8etwn antikeimenwn. Ayto perilambanei : generalization
kai specialization hierarchies, pollaplh klhronomikothta, tupoys
dedomenwn ka8orismenwn apo ton xrhsth, triggers kai assertions,
yposthrijh gia empeira systhmata, anadromikes erwthseis, kai epipleon
ergaleia diaxeirishs dedomenwn. Perilambanei epishs tis prodiagrafes
twn afhrhmenwn tupwn dedomenwn (abstract data types -ADTs), object
identifiers, me8odoys, klhronomikothta, polymorfismo, encapsulation,
kai oles tis eykolies poy sxetizontai me th diaxeirish dedomenwn twn
antikeimenwn.
To f8inopwro toy 1996, arketa tmhmata toy SQL3 perasan apo chfoforia
ISO CD. Ayta htan ta SQL/Framework, SQL/Foundation, kai SQL/Bindings.
Ayth h chfoforia apetyxe (opws htan anamenomeno) me 900 h peripoy tosa
sxolia. Sta telh Ianoyarioy, egine kapoia synanthsh suntajhs toy ISO
DBL kata thn opoia epejergasthkan luseis gia ena megalo ari8mo
problhmatwn ta opoia eite enswmatw8hkan me sxolia mesw chfoforias eite
stal8hkan san jexwrista papers. Mia kai h synanthsh suntajhs toy DBL
den mporese na epejergastei ola ta sxolia, h synanthsh suntajhs
parata8hke. H oloklhrwsh ths synanthshs suntajhs programmatisthke gia
ta telh Ioylioy, 1997, sto Londino.
Meta th synanthsh suntajhs toy Ioylioy, anamenetai na zhth8ei mia
telikh chfoforia gia ola ayta ta tmhmata ths SQL. H diadikasia gia thn
telikh chfoforia 8a krathsei 6 peripoy mhnes kai 8a ginei mia
synanthsh suntajhs DBL, meta thn opoia 8a ginei mia chfoforia DIS kai
mia sxetika grhgorh chfoforia IS .
Oi diadikasies ISO exoyn allajei apo to SQL/92, etsi oi epitropes gia
thn SQL doyleuoyn akomh gia ton ka8orismo twn akribwn leptomereiwn ths
diadikasias.
An pane ola kala, ayta ta tmhmata ths SQL3 8a ginoyn ena epishmo
protypo ISO/IEC sta telh toy 1998, alla to programma einai polu
sfixto.
To 1993, oi epitropes anaptyjhs ANSI kai ISO apofasisan na xwrisoyn th
mellontikh anaptyjh ths SQL se ena polymeres protypo. Ta tmhmata ayta
einai:
� Tmhma 1: Framework Mia mh texnikh perigrafh gia to pws einai
domhmeno to keimeno.
� Tmhma 2: Foundation Oi prodiagrafes toy systhmatos,
symperilambanomenoy olwn twn newn xarakthristikwn ADT.
� Tmhma 3: SQL/CLI To Call Level Interface.
� Tmhma 4: SQL/PSM Oi prodiagrafes twn stored procedures,
symperilambanomenwn ypologistikwn symplhrwsewn.
� Tmhma 5: SQL/Bindings Ta Dynamic SQL kai Embedded SQL bindings poy
par8hkan apo to SQL-92.
� Tmhma 6: SQL/XA Oi prodiagrafes SQL toy dhmofilous XA Interface poy
anaptussetai apo thn X/Open
� Tmhma 7:SQL/Temporal Pros8etei sta protypa SQL ikanothtes sxetikes
me to xrono.
Sthn Amerikh, oloklhrh h SQL3 epejergazetai kai san ANSI Domestic
("D") project kai san ISO project. To anamenomeno xroniko para8yro gia
thn oloklhrwsh ths SQL3 einai to 1999.
Ta SQL/CLI kai SQL/PSM epejergazontai oso grhgorotera ginetai san
addendums sthn SQL-92. Sthn Amerikh, ayta epejergazontai mono san
Die8nh Erga (International - "I"). H SQL/CLI oloklhrw8hke to 1995. H
SQL/PSM prepei na exei oloklhrw8ei sta telh toy 1996.
Epipros8eta ths SQL3 ergasias, enas ari8mos epipleon ergwn are
persued:
� SQL/MM Mia prospa8eia na oristoun protypa paketa polymeswn
xrhsimopoiwntas tis dynatothtes ths SQL3 ADT.
� Prosbash se apomakrysmena dedomena - Remote Data Access (RDA)
Epitropes Protupwn kai Diadikasiwn Yparxei pragmatika megalos ari8mos
epitropwn protupwn SQL se olo ton kosmo. Yparxei ena die8nes gkroyp
toy protupoy SQL san tmhma toy ISO. Polles xwres exoyn epitropes poy
asxolountai me thn SQL. Aytes oi xwres (synh8ws) stelnoyn
antiproswpoys stis synanthseis ISO/IEC JTC1/SC 21/WG3 DBL. Oi xwres
poy symmetexoyn energa sth diadikasia toy protupoy ISO SQL einai oi:
� Aystralia
� Brazilia
� Kanadas
� Gallia
� Germania
� Iapwnia
� Korea
� Ollandia
� Agglia
� Amerikh
NIST Nomimopoihsh
Oi ylopoihseis ths SQL nomimopoiountai (sthn Amerikh) apo to E8niko
Institouto Protupwn kai Elegxoy (NIST). To NIST exei gia thn wra ena
sunolo apo test nomimothtas gia to entry level SQL-92. Oi akribeis
plhrofories gia tis apaithseis ths NIST nomimopoihshs ka8orizontai ws
Omospondiako Protypo Epejergasias Plhroforias - Federal Information
Processing Standard (FIPS). Oi trexoyses apaithseis gia thn SQL
orizontai sto FIPS 127-2. Mporeite na parete tis trexoyses Postscript
kai Text ekdoseis aytou toy keimenoy apo to NIST. H lista twn
trexontwn nomimopoihmenwn SQL proiontwn mporei epishs na bre8ei sto
NIST.
Ekdoseis kai Ar8ra sxetika me to protypo ths SQL
Yparxoyn duo ekdoseis sxetika me to protypo SQL. Kai oi duo
diati8entai apo to ANSI:
� ISO/IEC 9075:1992, "Information Technology --- Database Languages
--- SQL"
� ANSI X3.135-1992, "Database Language SQL"
Oi dyo ekdoseis toy protupoy SQL einai oloidies ektos apo to ejwfyllo
kai tis anafores se alla protypa. Kai oi duo diati8entai apo to :
American National Standards Institute
1430 Broadway
New York, NY 10018
USA
Phone (sales): +1.212.642.4900
Epipros8eta sto protypo SQL-92, yparxei ena Technical Corrigendum
(dior8wseis bug):
* Technical Corrigendum 1:1994 to ISO/IEC 9075:1992
To TC 1 prepei na diati8etai epishs apo to ANSI. Yparxei mono h ISO
ekdosh toy TC 1 -- efarmozetai kai sthn ISO kai ANSI ekdosh toy
SQL-92.
Epipros8eta, exoyn graftei arketa biblia sxetika me to protypo 1992
SQL. Ayta ta biblia parexoyn mia kalutera anagnwsimh perigrafh toy
protupoy apo oti to idio to protypo.
Sxetizomena protypa
Enas sunolo protupwn endiaferoyn thn SQL koinothta. Ayto to tmhma
periexei deiktes se plhrofories gia aytes tis prospa8eies. Aytoi oi
deiktes 8a ayjh8oun ka8ws ejtra plhrofories diati8entai sto web.
� Periballonta SQL (FIPS 193)
� Repository Systhmata Epomenhs Genias (X3H4) - mia News Release poy
zhta symmetoxh sto "Anaptussontas Protypa gia Repository Systhmata
Epomenhs Genias."
23.11. Tmhma 2 - ISO/ANSI SQL Foundation
Ena shmantiko tmhma ths SQL3 prospa8eias brisketai sto keimeno SQL
Foundation :
� Basikes dynatothtes SQL/PSM (moved form SQL/PSM-92)
� Neoi tupoi dedomenwn
� Triggers
� Ypopinakes
� Afhrhmenoi Tupoi Dedomenwn - Abstract Data Types (ADT)
� Antikeimenostrafeis Dynatothtes
Yparxoyn arketa proapaitoumena stis antikeimenostrafeis dynatothtes:
� Ikanothta na orizete sun8etes leitoyrgies
� Apo8hkeysh sun8etwn leitoyrgiwn sth bash
� Klhsh ejwterikwn diadikasiwn � Merikes leitoyrgies mporei na mhn
einai se SQL, h mporei na apaitoun ejwterikes parembaseis
Aytes oi dynatothtes orizontai san tmhma toy SQL/PSM
Ginetai mia shmantikh ergasia gia na ekka8aristei to montelo
antikeimenoy SQL-3 kai na ey8ygrammistei me to montelo antikeimenoy
poy prota8hke apo to ODMG. Ayth h prospa8eia perigrafetai sto X3H2 kai
ISO DBL paper: Accomodating SQL3 and ODMG. Einai epishs dia8esimh mia
prosfath ekdosh sto SQL3/OQL Merger.
SQL3 Timing
H ergasia panw sto SQL3 brisketai se ejelijh, alla ta telika protypa
8a xreiastoun xronia akomh gia na oloklhrw8oun.
� Die8nhs chfoforia gia thn proodo toy SQL3 Foundation apo to
Proxeiro Entypo Ergasias ws to Proxeiro Entypo Epitrophs (Committee
Draft - CD) elabe xwra to f8inopwro toy 1996.
� H chfoforia anamenetai na prokalesei polla sxolia
� Einai pi8ano na zhth8ei mia deuterh chfoforia CD
� Mia Draft Yhfoforia Die8nwn Protupwn einai pi8ano na ginei sta mesa
toy 1998
� To Die8nes Protypo mporei na oloklhrw8ei sta mesa toy 1999.
H ANSI ekdosh toy protupoy exei paromoio xronodiagramma.
23.12. Tmhma 3 - ISO/ANSI SQL Call Level Interface
To SQL/CLI einai ena programmatistiko interface epipedoy klhsewn gia
SQL baseis. Exei sxediastei gia na yposthrizei prosbash se baseis apo
shrink-wrapped efarmoges. To CLI dhmioyrgh8hke arxika apo mia
ypoepitroph toy SQL Access Group (SAG). Oi prodiagrafes toy SAG/CLI
ekdo8hkan san tis prodiagrafes toy Microsoft Open DataBase
Connectivity (ODBC) to 1992. To 1993, to SAG esteile to CLI stis
epitropes ANSI kai ISO SQL. (To gkroyp SQL Access exei sygxwney8ei
twra me to X/Open consortium.)
To SQL/CLI parexei ena die8nes protypo gia :
� CLI anejarthto ylopoihshs, gia prosbash se baseis SQL
� Client-Server ergaleia poy mporoun na exoyn prosbash se mia bash
mesw dynamikwn biblio8hkwn
� Yposthrijh kai en8arrynsh plousioy synoloy ergaleiwn Client-server
SQL/CLI Timing
Sta plaisia ths diadikasia typopoihshs, to SQL/CLI epejergazetai me
megalh proteraiothta.
� To SQL/CLI einai ena symplhrwma toy protupoy 1992 SQL (SQL-92)
� Oloklhrw8hke san protypo ISO to 1995
� ISO/IEC 9075-3:1995 Information technology -- Database languages --
SQL -- Part 3: Call-Level Interface (SQL/CLI)
� H trexoysa SQL/CLI prospa8eia poy ginetai einai na proste8ei
yposthrijh gia xarakthristika ths SQL3
23.13. Tmhma 4 - ISO/ANSI SQL Persistent Stored Modules
To SQL/PSM epekteinei thn SQL pros8etontas:
� Dhlwtikes/Diadikastikes epektaseis
� Multi-statement kai Stored Procedures
� Ejwterikes synarthseis kai klhseis diadikasiwn
Ektos toy oti einai ena ajiologo ergaleio anaptyjhs efarmogwn, to
SQL/PSM parexei th 8emeliwdh yposthrijh gia antikeimenostrafeis
dynatothtes sthn SQL3.
Multi-statement kai Stored Procedures
Oi Multi-statement kai stored procedures prosferoyn mia poikilia
pleonekthmatwn se ena periballon client/server:
� Apodosh- Mia kai mia stored procedure mporei na ektelesei pollaples
SQL entoles, meiwnetai h allhlepidrash me ton pelath (client).
� Asfaleia - Enas xrhsths mporei na apokthsei to dikaiwma na kalei
mia stored procedure poy enhmerwnei ena pinaka h ena sunolo pinakwn
alla mhn exei to dikaiwma ths apey8eias enhmerwshs twn pinakwn
� Epanaxrhsimopoihsimos kwdikas - O kwdikas se mia stored procedure
de xreiazetai na janagraftei kai na janaelegx8ei gia ka8e client
ergaleio poy exei prosbash sth bash.
� Elegxos - Parexei ena mono shmeio orismou kai elegxoy ths logikhs
ths efarmoghs.
Dhlwtikes/Diadikastikes epektaseis
H Diadikastikh Glwssa pros8etei thn isxu mias paradosiakhs glwssas
programmatismou sthn SQL mesw entolwn elegxoy rohs kai mia poikilia
allwn programmatistikwn kataskeywn.
Entoles Elegxoy rohs
� If-then-else
� Looping constructs
� Exception handling
� Case statement
� Begin-End blocks
Oi diadikastikes epektaseis perilambanoyn kai alles programmatistikes
kataskeyes:
� Dhlwseis metablhtwn
� Entoles Set gia ana8esh timwn
� Lhch diagnwstikwn gia tis diergasies kai plhrofories katastashs
Epipleon, oles oi paradosiakes SQL entoles mporoun na symperilhf8oun
se diadikasies multi-statement.
Klhseis Ejwterikwn Diadikasiwn kai Synarthsewn Ena xarakthristiko poy
anaferetai syxna stis eyxethries listes toy ti 8a epi8ymousame gia
polla proionta basewn, kai poy exei ylopoih8ei se merikes, einai h
dynatothta na employtismou twn enswmatwmenwn xarakthristikwn me
klhseis se diadikasies poy exei gracei o xrhsths ejwterika ektos ths
bashs.
� Epitrepei se ena sygkekrimeno site h efarmogh na pros8esei tis
dikes toy synarthseis gia th bash
� Mporei na xrhsimopoih8ei apo tis efarmoges baseis dedomenwn
To pleonekthma ayths ths dynatothtas einai oti dinei sth bash (synepws
kai stis efarmoges basewn) prosbash se terastio ari8mo diadikasiwn kai
synarthsewn.
Xronismos toy SQL/PSM
To SQL/PSM exei en syntomia:
� To SQL/PSM einai mia pros8hkh sto SQL-92
� Die8nhs chfoforia gia thn proodo toy SQL/PSM apo to Draft Die8nes
Protypo sto Die8nes Protypo oloklhrw8hke ton Ianoyario toy 1996.
� H dior8wtikh synedriash to Maio toy 1996 den epelyse ola ta sxolia
� H synexish ths dior8wtikhs synedriashs PSM programmatisthke apo tis
30 Septembrioy mexri tis 4 Oktwbrioy toy 1996
� To xronodiagramma einai piestiko alla yparxei mia pi8anothta na
ekdo8ei to PSM mesa sto 1996.
� O epishmos prosdiorismos 8a einai: ISO/IEC DIS 9075-4:199?
Information technology -- Database languages -- SQL -- Part 4: SQL
Persistent Stored Modules (SQL/PSM)
� Exei hdh jekinhsei doyleia gia thn pros8hkh yposthrijhs SQL/PSM sta
xarakthristika ths SQL3.
23.14. Tmhma 5 - Typopoihseis - Desmeuseis ISO/ANSI SQL/ ISO/ANSI
SQL/Bindings
Gia eykolia anaforwn, oi desmeuseis, typopoihseis ths glwssas
programmatismou exoyn sygkentrw8ei se ena jexwristo keimeno. H
trexoysa ekdosh einai apla ena apospasma apo ta protypa ths
SQL-92(dynamika (dynamic) kai enswmatoumena (embedded)).
Paramenei adieykrinisth mia poikilia 8ematwn typopoihshs ths glwssas.
Sthn paradosiakh programmatistikh glwssa, yparxoyn oi apeikoniseis twn
tupwn dedomenwn ths SQL-92. Parola ayta, 8a prepei na oristoun kai oi
apeikoniseis metaju twn antikeimenwn ths SQL kai twn metablhtwn ths
programmatistikhs glwssas..
Gia tis antikeimenostrafeis glwsses, prepei na oristei h apeikonish
gia toys tupoys dedomenwn ths SQL kai metaju toy monteloy antikeimenwn
ths SQL kai toy monteloy antikeimenwn ths antikeimenostrafous glwssas.
To montelo dedomenwn 8a prepei na oristikopoih8ei prin arxisei na
ginetai anafora se tetoioy tupoy problhmata.
Oi typopoihseis ths glwssas 8a oloklhrw8oun ws meroys toy protypoy
SQL3.
23.15. Tmhma 6 - ISO/ANSI SQL XA Interface Specialization (SQL/XA)
Oi prodiagrafes aytes 8a typopoihsoyn ena programmatistiko interface
(API) metaju enos genikou Diaxeiristh Syndiallagwn (Transaction
Manager) kai enos Diaxeiristh Porwn (Resource Manager) SQL. 8a
typopoihsei tis klhseis synarthsewn, basizomenos sta protypa toy
ISO/IEC 10026, "Distributed Transaction Processing", poy enas
Diaxeirisths Porwn SQL 8a prepei na yposthrizei, gia na kanei commit
duo stadiwn (two-phase commit) To basiko keimeno anaforas ejagetai apo
mia dhmosieysh toy X/Open, me thn adeia toy X/Open, poy prosdiorizei
rhta tis parametroys eisodoy kai ejodoy kai thn shmeiografia
(semantics), gia tis akoloy8es synarthseis: xa_close, xa_commit,
xa_complete, xa_end, xa_forget,xa_open, xa_prepare, xa_recover,
xa_rollback, kai xa_start.
O ISO epixeirei na epitaxunei tis prodiagrafes toy X/Open XA. H
diadikasia epitaxynshs yio8etei biomhxanikes prodiagrafes xwris
allages. H chfoforia gia to XA sto ISO SC21, JTC epipedo 1, arxise
stis 27 Aprilioy, 1995 kai teleiwse stis 27 Oktwbrioy, 1995. An to 75
twn chfoforwn egkrinoyn tis prodiagrafes toy XA, kai apo ta 2/3 twn p-
melwn toy JTC 1, 8a apotelesei ena Die8nes Protypo. An h chfoforia to
egkrinei, to SQL/XA 8a mporouse na ginei ena protypo mesa sto 1996.
23.16. Part 7 - ISO/ANSI SQL Temporal
H Temporal SQL asxoleitai me xronika ejartwmena dedomena. H idea einai
pws einai xrhsimo na analuoyme ta dedomena gia na doume pws emoiazan
kapoia dedomenh xronikh stigmh. H Temporal SQL einai ena paper toy
Dekembrioy toy 1994 apo ton Rick Snodgrass poy perigrafei aytes tis
ennoies.
H X3 anakoinwnei thn egkrish enos Neoy Ergoy, ISO/IEC 9075 Meros 7o: H
SQL/Temporal einai mia dhmosieysh tupoy sxetikh me thn SQL/Temporal.
----------------------------------------------------------------------------
Temporal SQL
************
Rick Snodgrass (proedros ths epitrophs TSQL2)
31-Dek-1994
Arketoi amfisbhthsan thn anagkh ayjhmenhs yposthrijhs xronoy sthn SQL3
(opws ayto proteinetai apo to DBL RIO-75, opoy kai zhta ena neo tmhma
ths SQL poy na yposthrizei xronikes (temporal) baseis). O isxyrismos
toys basizetai sto oti oi afhrhmenoi tupoi dedomenwn (abstract data
types -ADT's) arkoun gia xronikh yposthrijh. Se ayto to plhroforiako
keimeno, diafwnw, kai, xrhsimopoiwntas adiaseista paradeigmata,
deixnw pws xrhsimopoiwntas mono sthles me afhrhmenoys tupoys dedomenwn
den arkei gia xronikes erwthseis. Eidikotera, polles koines xronikes
erwthseis, einai eite duskoles na prosomoiw8oun me SQL, eite apaitoun
thn enswmatwsh SQL se mia diadikastikh (procedural) glwssa. Oi enal�
laktikes luseis ekfrazontai se TSQL2, mia xronikh epektash sthn
SQL-92.
23.16.1. EISAGWGH
H yposthrijh egkyroy xronoy (Valid-time) jepernaei ayth enos koinou
xronikou afhrhmenoy tupoy dedomenwn (ADT). Ston teleytaio, mia sthlh
prosdiorizetai san ena xroniko pedio, eite ws DATE eite ws INTERVAL
(8a do8oun paradeigmata suntoma). Me ton egkyro xrono, oi grammes
enos pinaka diaforopoiountai me to perasma toy xronoy, ka8ws
diaforopoieitai kai h pragmatikothta. H xronikh sfragida (timestamp)
poy sxetizetai me mia grammh enos pinaka egkyrwn xronwn (valid-time
table) metafrazetai apo thn glwssa erwthsewn ws h xronikh stigmh gia
thn opoia o syndyasmos timwn twn sthlwn ths grammhs ekeinhs htan
egkyros. H uparjh ths emmeshs ayths xronikhs sfragidas epitrepei thn
diatupwsh safwn kai prwtotypwn erwthsewn.
23.16.2. MIA MELETH- APO8HKEYSH SYGXRONWN/TREXOYSWN PLHROFORIWN
To Grafeio Proswpikou toy Panepisthmioy ths Arizona exei kapoies
plhrofories se mia bash dedomenwn, mesa stis opoies kai to onoma twn
ypallhlwn, ton trexonta mis8o toys, kai ton trexoysa 8esh toys. Ayto
mporei na perigrafei me enan aplo pinaka.
Employee(Name, Salary, Title)
Dedomenoy aytou toy pinaka, h euresh toy mis8ou enos ypallhloy einai
eukolh.
SELECT Salary
FROM Employee
WHERE Name = 'Bob'
Twra to Grafeio Proswpikou epi8ymei na katagrafei kai thn hmeromhnia
gennhshs. Gia na to kanei, pros8etei mia sthlh ston pinaka, kai etsi
prokuptei to akoloy8o sxhma.
Employee(Name, Salary, Title, DateofBirth DATE)
H euresh twn gene8liwn enos ypallhloy einai analogh me to na broume to
mis8o toy.
SELECT DateofBirth
FROM Employee
WHERE Name = 'Bob'
23.16.3. MELETH - APO8HKEYSH ISTORIKWN PLHROFORIWN
To Grafeio Proswpikou epi8ymei perasei ta istorika stoixeia twn
ypallhlwn se hlektronikh morfh. Gia na to kanei, pros8etoyn duo
sthles, mia poy ypodeiknuei pote egine egkyrh h plhroforia ths
grammhs, kai mia gia to pote epace na isxuei.
Employee (Name, Salary, Title, DateofBirth, Start DATE, Stop DATE)
Sto montelo dedomenwn, aytes oi duo sthles einai paromoies me to
DateofBirth. Parola ayta, h paroysia toys exei epiptwseis megalhs
klimakas.
23.16.4. MELETH - PROBOLH (PROJECTION)
Gia na broume ton trexonta mis8o enos ypallhloy, ta pragmata einai
pleon dyskolotera.
SELECT Salary
FROM Employee
WHERE Name = 'Bob' kai Start <= CURRENT_DATE kai CURRENT_DATE <= Stop
Ayth h erwthsh einai pio sun8eth apo oti h prohgoumenh. H dyskolia
einai profanws oi duo nees sthles. To Grafeio Proswpikou 8elei na
dianemei se ka8e ypallhlo to mis8ologiko toy arxeio. Eidikotera, gia
ka8e enan, 8a prepei na ka8oristoun ta megista diasthmata ana mis8o.
Dystyxws, ayto den einai dynato me SQL. Enas ypallhlos exei ena tyxaio
ari8mo allagwn 8esewn metaju mis8ologikwn allagwn.
Name Salary Title DateofBirth Start Stop
---- ------ ----- ----------- ----- ----
Bob 60000 Assistant Provost 1945-04-09 1993-01-01 1993-05-30
Bob 70000 Assistant Provost 1945-04-09 1993-06-01 1993-09-30
Bob 70000 Provost 1945-04-09 1993-10-01 1994-01-31
Bob 70000 Professor 1945-04-09 1994-02-01 1994-12-31
Eikona 1
Shmeiwste pws yparxoyn treis grammes opoy o mis8os toy Bob paremeine
sta8eros stis $70,000. Gi ayto to apotelesma 8a eprepe na dwsei duo
grammes gia ton Bob.
Name Salary Start Stop
---- ------ ----- ----
Bob 60000 1993-01-01 1993-05-30
Bob 70000 1993-06-01 1994-12-31
Mia enallaktikh lush einai na do8ei ston xrhsth mia ektupwsh plhro�
foriwn Mis8ou kai Titloy, kai na afhnoyme ton xrhsth na ka8orizei pote
allaje o mis8os toy. H enallaktikh ayth den einai polu 8elktikh h
realistikh. Mia deuterh, einai na xrhsimopoihsoyme oso pio polu SQL
ginetai.
CREATE TABLE Temp(Salary, Start, Stop)
AS SELECT Salary, Start, Stop
FROM Employee;
epanalabate
UPDATE Temp T1
SET (T1.Stop) = (SELECT MAX(T2.Stop)
FROM Temp AS T2
WHERE T1.Salary = T2.Salary kai T1.Start < T2.Start
kai T1.Stop >= T2.Start kai T1.Stop < T2.Stop)
WHERE EXISTS (SELECT *
FROM Temp AS T2
WHERE T1.Salary = T2.Salary kai T1.Start < T2.Start
kai T1.Stop >= T2.Start kai T1.Stop < T2.Stop)
mexri na mhn enhmerw8ei kamia grammh;
DELETE FROM Temp T1
WHERE EXISTS (SELECT *
FROM Temp AS T2
WHERE T1.Salary = T2.Salary
kai ((T1.Start > T2.Start kai T1.Stop <= T2.Stop)
OR (T1.Start >= T2.Start kai T1.Stop < T2.Stop))
O brogxos briskei ta diasthmata ekeina poy epikaluptontai h einai
geitonika kai gi ayto 8a eprepe na sygxwney8oun. O broxos ekteleitai N
fores sthn xeiroterh periptwsh, opoy to N einai o ari8mos twn grammwn
se mia alysida epikalyptomenwn h geitonikwn grammwn me ises times. O
anagnwsths mporei na prosomoiwsei thn erwthsh toy pinaka toy
paradeigmatos gia na peistei gia thn or8othta toy parapanw.
Mia trith enallaktikh einai na xrhsimopoihsoyme SQL mono gia na
anoijoyme ena kersora (cursor) ston pinaka. Mia syndedemenh lista
xronikwn periodwn 8a krath8ei, ka8e mia exontas kai ena mis8o. H
syndedemenh lista arxikopoieitai kenh.
DECLARE emp_cursor CURSOR FOR
SELECT Salary, Title, Start, Stop
FROM Employee;
OPEN emp_cursor;
loop:
FETCH emp_cursor INTO :salary, :start, :stop;
if no-data returned then goto finished;
find position in linked list to insert this information;
goto loop;
finished:
CLOSE emp_cursor;
dietreje th lista typwnontas hmeromhnies kai mis8ous
H syndedemenh lista mporei kai na mhn xreiazetai sthn periptwsh ayth
ana o kersoras einai ORDER BY Start.
Se ka8e periptwsh, h erwthsh, poy einai kai fysikh, einai duskolo na
ekfrastei me tis yparxoyses dynatothtes ths SQL-92. H erwthsh einai
tetrimmenh se TSQL2.
SELECT Salary
FROM Employee
23.16.5. MELETH - SYSXETISMOS (JOIN)
Mia pio drastikh proseggish einai na apofugoyme to problhma ths
ejagwghs ths mis8ologikhs istorias me anadiorganwsh toy sxhmatos wste
na aposyzeujoyme to mis8o, th 8esh kai thn hmeromhnia gennhshs
(parakatw, agnooume thn hmeromhnia gennhshs, gia aplothta).
Employee1 (Name, Salary, Start DATE, Stop DATE)
Employee2 (Name, Title, Start DATE, Stop DATE)
O pinakas Employee1 exei ws akolou8ws.
Name Salary Start Stop
---- ------ ----- ----
Bob 60000 1993-01-01 1993-05-30
Bob 70000 1993-06-01 1993-12-31
Edw einai kai o pinakas Employee2 toy paradeigmatos.
Name Title Start Stop
---- ------ ----- ----
Bob Assistant Provost 1993-01-01 1993-09-30
Bob Provost 1993-10-01 1994-01-31
Bob Professor 1994-02-01 1994-12-31
Me ayth thn allagh, h apokthsh ths plhroforias toy mis8ou gia enan
ypallhlo einai pleon eukolh.
SELECT Salary, Start, Stop
FROM Employee1
WHERE Name = 'Bob'
Alla ti 8a ginei ean to Grafeio Proswpikou 8elhsei enan pinaka mis8ou,
diasthmatwn 8eshs (dhladh, as ypo8esoyme pws to G.P. 8elei enan pinaka
ths morfhs ths Eikonas 1); Mia enallaktikh lush einai na typwsoyme
toys duo pinakes kai na afhsoyme ton xrhsth na ypologisei toys syn�
dyasmous. Mia deuterh enallaktikh, einai na xrhsimopoihsoyme mono
SQL. Dystyxws, h erwthsh ayth prepei na kanei mia analysh katastasewn
toy pws mia grammh toy Employee1 epikaluptei grammes toy Employee2.
Yparxoyn tesseris dynates katastaseis.
SELECT Employee1.Name, Salary, Dept, Employee1.Start, Employee1.Stop
FROM Employee1, Employee2
WHERE Employee1.Name = Employee2.Name
and Employee2.Start <= Employee1.Start and Employee1.Stop < Employee2.Stop
UNION
SELECT Employee1.Name, Salary, Dept, Employee1.Start, Employee2.Stop
FROM Employee1, Employee2
WHERE Employee1.Name = Employee2.Name
and Employee1.Start >= Employee2.Start and Employee2.Stop < Employee1.Stop
kai Employee1.Start < Employee2.Stop
UNION
SELECT Employee1.Name, Salary, Dept, Employee2.Start, Employee1.Stop
FROM Employee1, Employee2
WHERE Employee1.Name = Employee2.Name
and Employee2.Start > Employee1.Start and Employee1.Stop < Employee2.Stop
and Employee2.Start < Employee1.Stop
UNION
SELECT Employee1.Name, Salary, Dept, Employee2.Start, Employee2.Stop
FROM Employee1, Employee2
WHERE Employee1.Name = Employee2.Name
and Employee2.Start > Employee1.Start and Employee2.Stop < Employee1.Stop
To na piasoyme tis tesseris katastaseis einai mia duskolh kai endi�
aferoysa ergasia. Se TSQL2, to na kanoyme ena xroniko sysxetismo
(temporal join) einai opws kapoios 8a perimene.
SELECT Employee1.Name, Salary, Dept
FROM Employee1, Employee2
WHERE Employee1.Name = Employee2.Name
23.16.6. MELETH - A8ROISTIKOI TELESTES (AGGREGATES)
Twra to G.P. erwtatai, poios einai o megistos mis8os; Prin thn
eisagwgh toy xronoy, ayto htan eukolo.
SELECT MAX(Salary)
FROM Employee
Twra omws poy h mis8ologikh istoria apo8hkeuetai, 8a 8elame mia isto�
ria toy megistoy mis8ou ana ton xrono. To problhma fysika einai, pws h
SQL den parexei xronikous a8roistikous telestes. O eukolos tropos na
ginei to parapanw, einai na typwsoyme thn plhroforia kai na thn dia�
trejoyme xeirokinhta gia ta megista. Enallaktika, 8a mporousame na
kanoyme texnasmata kai na metatrecoyme thn a8roistikh erwthsh se mia
mia mh a8roistikh, kai meta ayth se xronikh. H mh a8roistikh 8a
ebriske ekeinoys toys mis8ous gia toys opoioys den yparxei megaluteros
mis8os.
SELECT Salary
FROM Employee AS E1
WHERE NOT EXISTS (SELECT *
FROM Employee AS E2
WHERE E2.Salary > E1.Salary)
H metatroph mias tetoias erwthshs apexei polu apo to na 8ewrh8ei
tetrimmenh. To akoloy8o einai mia proseggish.
CREATE TABLE Temp (Salary, Start, Stop)
AS SELECT Salary, Start, Stop
FROM Employee;
INSERT INTO Temp
SELECT T.Salary, T.Start, E.Start
FROM Temp AS T, Employee AS E
WHERE E.Start >= T.Start and E.Start < T.Stop and E.Salary > T.Salary;
INSERT INTO Temp
SELECT T.Salary, T.Stop, E.Stop
FROM Temp AS T, Employee AS E
WHERE E.Stop > T.Start and E.Stop <= T.Stop and E.Salary > T.Salary;
DELETE FROM Temp T
WHERE EXISTS (SELECT *
FROM Employee AS E
WHERE ((T.Start => E.Start and T.Start < E.Stop)
OR (E.Start >= T.Start and E.Start < T.Stop))
kai E.Salary > T.Salary;
Ayth h proseggish dhmioyrgei enan boh8htiko pinaka. Pros8etoyme se
ayton ton pinaka thn xamhloterh periodo apo mia afairesh diasthmatwn
kai thn megaluterh periodo apo mia afairesh diasthmatwn. Meta dia�
grafoyme oles tis periodoys poy epikaluptontai me kapoia grammh poy
orizetai apo thn ypo-erwthsh (subquery), kai menoyn oi NOT EXISTS.
Telika, dhmioyrgoume apo ton boh8htiko pinaka ta megista diasthmata,
me ton idio tropo poy ypologisthke parapanw h plhroforia mis8wn. Opws
mporoume na fantastoume, tetoios kwdikas SQL einai yperbolika anapote�
lesmatikos gia na ektelestei, dedomenoy twn sun8etwn fwliasmenwn
(nested) ypoerwthsewn me toys telestes sugkrishs me krithria anisoth�
tas.
Mia trith enallaktikh lush, einai na xrhsimopoihsoyme SQL oso ligotero
ginetai, kai na ypologisoyme thn epi8ymhth istorikothta apo megistes
times se mia allh glwssa xrhsimopoiwntas enswmatwmenoys kersores.
H erwthsh se TSQL2 einai aploustath.
SELECT MAX(Salary)
FROM Employee
23.16.7. PERILHYH
Oi perissoteres efarmoges me bash dedomenwn exoyn na antimetwpisoyn
kai dedomena me xronikh diakumansh einai anagkh na antimetwpistoun . H
yposthrijh egkyroy-xronoy einai apousa sthn SQL. Polles koines
xronikes erwthseis einai loipon eite duskoles na ejomoiw8oun mesw SQL,
h apaitoun enswmatwsh ths SQL se mia dhlwtikh / diadikastikh glwssa
(procedural), logw ths elleichs yposthrijhs pinakwn egkyroy-xronoy sto
montelo dedomenwn kai sthn kataskeyh erwthsewn ths SQL.
Se allo shmeio, deijame pws h yposthrijh egkyroy-xronoy apaitei mikres
allages sthn ylopoihsh ths DBMS, kai mporei na aplopoihsei dramatika
kapoies erwthseis, na kanei dynates alles, kai akolou8ws na epitrecei
me8odoys deiktodothshs kai strathgikes beltistopoihsewn poy mporoun na
odhghsoyn se shmantikes kalytereuseis apodoshs.
Me to neo tmhma ths SQL3 poy yposthrizei plhrofories me xronikh
diakumansh, mporoume na arxisoyme na stoxeuoyme se tetoies efarmoges,
epitrepontas sthn SQL3 na diaxeirizetai kalutera ta xronika dedomena.
----------------------------------------------------------------------------
Epitroph Epikurwshs Protupwn* X3, Texnologia Plhroforiwn
DHMOSIEYSH NEWN
Ar. Eggrafoy: PR/96-0002
Apanthsh eis: Barbara Bennett sto
[email protected]
H X3 anakoinwnei thn Egkrish enos Neoy Ergoy, ISO/IEC
9075 Tmhma 7: SQL/Temporal
Washington D.C., Ianoyarios 1996
----------------------------------------------------------------------------
-- Epitroph Epikurwshs Protupwn X3, Texnologia Plhroforiwn anakoinwnei
thn egkrish enos Neoy Ergoy sthn xronikh yposthrijh SQL
(SQL/Temporal), ISO/IEC 9075 Tmhma 7. O skopos toy proteinomenoy pro�
tupoy prosdiorizei ena neo Tmhma sto anerxomeno protypo SQL3, p.x., to
Tmhma 7, Xronikh SQL, ws epektaseis ths glwssas SQL poy yposthrizoyn
thn anakthsh , kai epejergasia xronikwn dedomenwn se ena periballon
mias SQL bashs dedomenwn. H epomenh synedria X3H2 programmatisthke
gia tis 11-14 Martioy toy 1996 sto Kansas.
Erwthseis gia to ergo ayto 8a prepei na staloun sto
Chairman of X3H2,
Dr. Donald R. Deutsch,
Sybase, Inc., Suite 800,
6550 Rock Spring
Drive, Bethesda, MD 20817.
Email:
[email protected].
Mia arxikh prosklhsh gia patentes kai sxetika 8emata (pneymatikes
idiokthsies, emporika shmata) (copyrights, trademarks) ekdidetai ayton
ton kairo. Ypobalete plhrofories gia ta 8emata ayta sto
X3 Secretariat at
1250 Eye Street
NW, Suite 200,
Washington DC 20005.
Email:
[email protected]
FAX: (202)638-4922.
23.17. Tmhma 8 - ISO/ANSI POLYMESA SQL (SQL MULTIMEDIA - SQL/MM)
Ena neo die8nes ergo typopoihshs ISO/IEC gia thn anaptyjh mias
biblio8hkhs klasewn SQL (SQL class library) gia efarmoges polymeswn
egkri8hke apo tis arxes toy 1993. Ayth h nea drasthriothta
typopoihshs, onomazomenh SQL Multimedia (SQL/MM), 8a ka8orisei paketa
me orismous afhrhmenwn tupwn dedomenwn SQL (abstract data type- ADT)
xrhsimopoiwntas tis eykolies gia ton ka8orismo toy ADT kai thn
proklhsh poy parexetai stis anamenomenes prodiagrafes toy SQL3. To
SQL/MM exei san stoxo na typopoihsei tis biblio8hkes klasewn gia thn
episthmh kai mhxanikh, thn full-text epejergasia keimenoy, kai tis
me8odoys gia diaxeirish antikeimenwn polymeswn opws eikona, hxos,
animation, moysikh, kai binteo. 8a parexei pi8ana ena SQL language
binding antikeimeno polymeswn apo alles JTC1 organwseis protypopoihshs
(p.x. SC18 gia keimena, SC24 gia eikones, kai SC29 gia fwtografies kai
kinoumenes eikones).
To plano aytou toy ergoy gia to SQL/MM deixnei oti 8a einai ena
spondylwto protypo poy 8a apoteleitai apo ena ayjanomeno ari8mo
tmhmatwn. To tmhma 1 8a einai ena Plaisio (Framework) poy 8a
prosdiorizei pws 8a kataskeyastoun ta ypoloipa merh. Ka8e ena apo ta
ypoloipa merh, 8a einai afosiwmeno se ena sygkekrimeno paketo SQL
efarmogwn. H parakatw domh tmhmatwn toy SQL/MM yparxei apo ton
Augoysto toy 1994:
� Tmhma 1: Plaisio. Mh texnikh perigrafh toy pws domeitai to keimeno.
� Tmhma 2: Me8odoi Keimenoy kai ADTs gia epejergasia dedomenwn
keimenoy. Peri tis 45 selides.
� Tmhma 3: Xwrikes Me8odoi kai ADTs gia diaxeirish xwrikwn dedomenwn.
Peri tis 200 selides me syneisfores apo eidikous sta xwrika
dedomena, apo organwseis 3 xwrwn.
� Tmhma 4: Me8odoys Genikou Skopou kai ADTs gia migadikous ari8mous.
Oi dynatothtes perilambanoyn trigwnometrikes kai ek8etikes
synarthseis, dianusmata, sunola, klp. Pros to paron peri tis 90
selides.
yparxei ena plh8os stantar ergasiwn ston tomea ton Xwrikwn kai
Gewgrafikwn Systhmatwn:
� ANSI X3L1 - Geographic Information Systems. Mark Ashworth of
Unisys is the liason between X3L1 kai ANSI X3H2. He is also the
editor for parts 1, 3, kai 4 of the SQL/MM draft.
� ISO TC 211 - Geographic information/Geomatics
24. Texnikh yposthrijh gia thn PostgreSQL
An exete opoiadhpote texnikh erwthsh h synanthsete opoiodhpote
problhma mporeite na steilete e-mail sto:
�
[email protected]
kai na perimenete apanthsh me e-mail se ligotero apo mia mera.
Ka8ws h bash twn xrhstwn sto internet einai terastia, kai oi
xrhstes yposthrizoyn toys alloys xrhstes, to internet 8a einai
ikano na dwsei eukola texnikh yposthrijh se disekatommuria xrhstes.
H yposthrijh me Email einai polu pio bolikh apo thn thlefwnikh
yposthrijh ka8ws mporeite na kanete cut kai paste ta mhnumata
la8wn, thn ejodo toy programmatos klp. kai na to metadwsete eukola
sth lista allhlografias/newsgroup.
Sto prosexes mellon, o organismos ths PostgreSQL 8a poyla texnikh
yposthrijh se megales/mikres etaireies, ta esoda poy 8a prokucoyn 8a
xrhsimopoih8oun gia th synthrhsh arketwn mirror sites (web kai ftp) se
olo ton kosmo. 8a xrhsimopoih8oun epishs gia thn paragwgh ektypwmenhs
tekmhriwshs, boh8hmatwn, bibliwn poy 8a boh8hsoyn toys pelates.
Mporeite epishs na boh8h8eite apo symboyleytikes etaireies opws h
Anderson, WGS (Work Group Solutions). Epikoinwnhste mazi toys gia
boh8eia -
� Work Group Solutions <
http://www.wgs.com>
� Anderson Consulting <
http://www.ac.com>
25. Oikonomika kai Epaggelmatika 8emata
Oi emporikes baseis plhrwnoyn pollous foroys, endeiktika anaferoyme :
omospondiakous, politeiakous, pwlhsewn, ergasiakous, koinwnikhs
asfaleias, iatrikhs peri8alchs ergazomenwn, 8elghtrwn gia toys
ergazomenoys, kosth gia marketing kai diafhmish. Ola ayta ta ejoda den
phgainoyn katey8eian gia thn anaptyjh ths bashs. Otan agorazete mia
emporikh bash, meros ths timhs phgainei gia epibarunseis opws foroi,
ejoda kai to isozugio toy kostoys ths bashs R&D.
Oi emporikes baseis, epishs, prepei na plhrwsoyn gia ktiria/ktismata
kai na agorasoyn mhxanes Unix, na tis egkatasthsoyn kai na tis
synthrhsoyn. Ola ayta ta ejoda epibarunoyn telika ton pelath.
H PostgreSQL yperexei enanti twn emporikwn basewn mia kai den
plhrwnoyn amesa foroys ka8ws anaptussetai mesw internet. Ena terastio
plh8os an8rwpwn syneisferei sthn anaptyjh ths PostgreSQL. Gia
paradeigma, se mia ypo8etikh periptwsh, an yparxoyn ena ekatommurio
etaireies sthn Amerikh kai ka8e mia syneisferei 10 $ (ajia toy
logismikou PostgreSQL) tote ka8e mia 8a labei deka ekatommuria
dolaria!! Ayth einai h MAGEIA ths anaptyjhs logismikou sto internet.
Mexri twra, o phgaios kwdikas ths PostgreSQL einai peripoy 2,00,000
grammes se kwdika "C", "C++". An to kostos ka8e grammhs kwdika "C"
einai $ 2 tote to synoliko kostos ths PostgreSQL 8a htan shmera $
4,00,000 (tetrakosies xiliades dolaria!).
Polles etaireies hdh anaptussoyn terasties posothtes kwdika "C",
"C++". Etsi, to na paroyn ton phgaio kwdika ths PostgreSQL kai na
synergastoun me alles etaireies sto internet 8a wfelhsei thn etaireia
na ejoikonomhsei xrono kai prospa8eia.
26. Lista allwn basewn dedomenwn
Parakatw akoloy8ei lista allwn SQL basewn dedomenwn gia Unix, Linux.
� Pathste kai phgainete sto Applications->databases.
<
http://www.caldera.com/tech-ref/linuxapps/linapps.html>
� Pathste kai phgainete sto Applications->databases.
<
http://www.xnet.com/~blatura/linapps.shtml>
� Phges gia Baseis Dedomenwn <
http://linas.org/linux/db.html>
grafthke apo ton Linas Vepstas:
[email protected]
� Lista dwrean basewn
<
http://cuiwww.unige.ch:80/~scg/FreeDB/FreeDB.list.html>
� Lista RDBMS toy Browne <
http://www.hex.net/~cbbrowne/rdbms.html>
grafthke apo ton Christopher B. Browne
[email protected]
� Lista Sxesiakwn DBMS toy SAL <
http://SAL.KachinaTech.COM/H/1/>
� Lista Antikeimenostrafwn DBMS toy SAL
<
http://SAL.KachinaTech.COM/H/2/>
� Lista boh8htikwn efarmogwn kai allwn basews toy SAL
<
http://SAL.KachinaTech.COM/H/3/>
� ACM SIGMOD. Deikths toy dhmosia dia8esimoy logismikou Basewn
Dedomenwn <
http://bunny.cs.uiuc.edu/sigmod/databaseSoftware/>
27. Xrhsimes symboyles gia anazhthseis sto Internet World Wide Web
To Internet einai aperanto, yparxei se ayto terastia posothta
logismikou kai mia 8alassa plhroforiwn apo katw toy. Ayjanetai me
ry8mo 300% ethsiws se olo ton kosmo. Ypologizetai oti yparxoyn peripoy
10 ekatommuria Web sites se olh th gh!
Gia na cajete gia plhrofories 8a xrhsimopoihsete mhxanes anazhthshs
opws to "Yahoo", "Netscape", "Lycos" klp. Phgainete sto Yahoo kai
pathste sto search. Xrhsimopoihste tis epiloges filtrarismatos gia na
sygkekrimenopoihsete ta krithria anazhthshs. H default epilogh
anazhthshs einai h "Ejypnh anazhthsh" ("Intelligent search") poy einai
pio genikh kai emfanizei oles tis pi8anothtes. Pathste stis "Epiloges"
("Options") gia na dialejete anazhthsh me "akribh frash"("EXACT
phrase"), anazhthsh me "AND", me "OR", klp. Me ayton ton tropo 8a
breite tis plhrofories poy 8elete polu grhgorotera.
28. Symperasma
Meta apo ereyna se oles tis dia8esimes baseis poy einai DWREAN kai o
phgaios toys kwdikas einai dia8esimos, katalhjame oti MONO h
PostgreSQL einai h PERISSOTERO wrimh, PERISSOTERO eyrews diadedomenh
kai isxyrh, dwrean bash RDBMS SQL (antikeimenostrafhs-sxesiakh), ston
kosmo.
H PostgreSQL einai idiaitera elkystikh mia kai exei hdh ginei arketh
doyleia, kai exei odhgous ODBC, JDBC me toys opoioys einai dynato na
gracete efarmoges anejarthtws bashs. Oi efarmoges poy grafontai sthn
PostgreSQL me xrhsh odhgwn ODBC, JDBC einai eukola metafersimes se
alles baseis, opws Oracle, Sybase kai Informix. Epishs, efarmoges poy
exoyn graftei se Oracle, Sybase kai Informix me xrhsh odhgwn ODBC,
JDBC einai eukola metafersimes sthn PostgreSQL.
Mporei na anarwth8eite "Alla giati PostgreSQL ;" H apanthsh einai oti
mia kai xreiazetai polu perissoteros xronos gia na anaptyx8ei ena neo
susthma bashs apo thn arxh, einai logiko na dialejoyme ena susthma
bashs dedomenwn poy ikanopoiei tis parakatw syn8hkes -
Ena susthma bashs dedomenwn
� toy opoioy o phgaios kwdikas einai dia8esimos
� poy den exei periorismous se 8emata adeias, h kapoia prosarthmenh
idiokthsia se ayto
� to opoio dianemetai mesw internet
� to opoio anaptussetai edw kai polla xronia.
� to opoio ikanopoiei mellontikes anagkes opws thn SQL 3 (SQL 98)
� to opoio exei ejeligmenes dynatothtes
kai apla symbainei na einai h 'PostgreSQL' poy ikanopoiei oles
aytes tis syn8hkes kai na einai to katallhlo logismiko gia ayth thn
periptwsh.
29. Syxna Diatypwmenes Erwthseis sxetika me thn PostgreSQL
Phgainete sthn teleytaia ekdosh toy FAQ gia General, Linux kai Irix
sto
� <
http://www.postgresql.org/docs/faq-english.shtml>
30. Shmeiwsh Pneymatikwn Dikaiwmatwn
Pneymatikh idiokthsia (c) 1997 toy Al Dev (Alavoor Vasudevan). Ola ta
dikaiwmata exoyn katoxyrw8ei.
KAMIA EY8YNH GIA EPAKOLOY8OMENES ZHMIES. Se kamia periptwsh o
syggrafeas toy keimenoy den einai ypeu8ynos gia opoiadhpote zhmia
(symperilambanomenwn xwris periorismo, twn eidikwn, anapantexwn,
epakoloy8wn, h ameswn/ emmeswn zhmiwn, proswpikwn blabwn, apwleia
epaggelmatikwn kerdwn, diakoph ergasias, apwleia epaggelmatikwn
dedomenwn, h opoiadhpote xrhmatikh apwleia) poy prokucei apo th xrhsh
aytou toy keimenoy.
O syggrafeas den eggyatai thn or8othta, xrhsimothta, emporikothta toy
keimenoy. Oi markes, etaireies kai ta onomata twn proiontwn poy
anaferontai se ayto to keimeno einai shma katate8en twn antistoixwn
idiokthtwn. Sas parapempoyme sta jexwrista shmeiwmata pneymatikhs
idiokthsias twn etaireiwn kai proiontwn poy anafer8hkan se ayto to
keimeno. Einai dikh sas ey8unh na diabasete kai na katalabete ta
shmeiwmata pneymatikhs idiokthsias twn organismwn /etaireiwn/proiontwn
/syggrafewn poy anafer8hkan se ayto to keimeno prin na xrhsimopoihsete
tis antistoixes plhrofories.
AE. Pararthma A - Suntajh toy ANSI/ISO SQL 1992
Ayto to arxeio periexei to dendroeidh diadromh me proteraiothta ba8oys (depth-first tree traversal) toy BNF gia th glwssa, poy oloklhrw8hke stis 27-AYG-1992 11:03:41.64.
H sygkekrimenh ekdosh toy BNF poy perilambanetai edw einai h: ANSI-only, SQL2-only.
<SQL terminal character> ::=
<SQL language character>
| <SQL embedded language character>
<SQL language character> ::=
<simple Latin letter>
| <digit>
| <SQL special character>
<simple Latin letter> ::=
<simple Latin upper case letter>
| <simple Latin lower case letter>
<simple Latin upper case letter> ::=
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O
| P | Q | R | S | T | U | V | W | X | Y | Z
<simple Latin lower case letter> ::=
a | b | c | d | e | f | g | h | i | j | k | l | m | n | o
| p | q | r | s | t | u | v | w | x | y | z
<digit> ::=
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<SQL special character> ::=
<space>
| <double quote>
| <percent>
| <ampersand>
| <quote>
| <left paren>
| <right paren>
| <asterisk>
| <plus sign>
| <comma>
| <minus sign>
| <period>
| <solidus>
| <colon>
| <semicolon>
| <less than operator>
| <equals operator>
| <greater than operator>
| <question mark>
| <underscore>
| <vertical bar>
<space> ::= !! <EMPHASIS>(space character in character set in use)
<double quote> ::= "
<percent> ::= %
<ampersand> ::= &
<quote> ::= '
<left paren> ::= (
<right paren> ::= )
<asterisk> ::= *
<plus sign> ::= +
<comma> ::= ,
<minus sign> ::= -
<period> ::= .
<solidus> ::= /
<colon> ::= :
<semicolon> ::= ;
<less than operator> ::= <
<equals operator> ::= =
<greater than operator> ::= >
<question mark> ::= ?
<underscore> ::= _
<vertical bar> ::= |
<SQL embedded language character> ::=
<left bracket>
| <right bracket>
<left bracket> ::= [
<right bracket> ::= ]
<token> ::=
<nondelimiter token>
| <delimiter token>
<nondelimiter token> ::=
<regular identifier>
| <key word>
| <unsigned numeric literal>
| <national character string literal>
| <bit string literal>
| <hex string literal>
<regular identifier> ::= <identifier body>
<identifier body> ::=
<identifier start> [ ( <underscore> | <identifier part> )... ]
<identifier start> ::= <EMPHASIS>(!! See the Syntax Rules)
<identifier part> ::=
<identifier start>
| <digit>
<key word> ::=
<reserved word>
| <non-reserved word>
<reserved word> ::=
ABSOLUTE | ACTION | ADD | ALL
| ALLOCATE | ALTER | AND
| ANY | ARE
| AS | ASC
| ASSERTION | AT
| AUTHORIZATION | AVG
| BEGIN | BETWEEN | BIT | BIT_LENGTH
| BOTH | BY
| CASCADE | CASCADED | CASE | CAST
| CATALOG
| CHAR | CHARACTER | CHAR_LENGTH
| CHARACTER_LENGTH | CHECK | CLOSE | COALESCE
| COLLATE | COLLATION
| COLUMN | COMMIT
| CONNECT
| CONNECTION | CONSTRAINT
| CONSTRAINTS | CONTINUE
| CONVERT | CORRESPONDING | COUNT | CREATE | CROSS
| CURRENT
| CURRENT_DATE | CURRENT_TIME
| CURRENT_TIMESTAMP | CURRENT_USER | CURSOR
| DATE | DAY | DEALLOCATE | DEC
| DECIMAL | DECLARE | DEFAULT | DEFERRABLE
| DEFERRED | DELETE | DESC | DESCRIBE | DESCRIPTOR
| DIAGNOSTICS
| DISCONNECT | DISTINCT | DOMAIN | DOUBLE | DROP
| ELSE | END | END-EXEC | ESCAPE
| EXCEPT | EXCEPTION
| EXEC | EXECUTE | EXISTS
| EXTERNAL | EXTRACT
| FALSE | FETCH | FIRST | FLOAT | FOR
| FOREIGN | FOUND | FROM | FULL
| GET | GLOBAL | GO | GOTO
| GRANT | GROUP
| HAVING | HOUR
| IDENTITY | IMMEDIATE | IN | INDICATOR
| INITIALLY | INNER | INPUT
| INSENSITIVE | INSERT | INT | INTEGER | INTERSECT
| INTERVAL | INTO | IS
| ISOLATION
| JOIN
| KEY
| LANGUAGE | LAST | LEADING | LEFT
| LEVEL | LIKE | LOCAL | LOWER
| MATCH | MAX | MIN | MINUTE | MODULE
| MONTH
| NAMES | NATIONAL | NATURAL | NCHAR | NEXT | NO
| NOT | NULL
| NULLIF | NUMERIC
| OCTET_LENGTH | OF
| ON | ONLY | OPEN | OPTION | OR
| ORDER | OUTER
| OUTPUT | OVERLAPS
| PAD | PARTIAL | POSITION | PRECISION | PREPARE
| PRESERVE | PRIMARY
| PRIOR | PRIVILEGES | PROCEDURE | PUBLIC
| READ | REAL | REFERENCES | RELATIVE | RESTRICT
| REVOKE | RIGHT
| ROLLBACK | ROWS
| SCHEMA | SCROLL | SECOND | SECTION
| SELECT
| SESSION | SESSION_USER | SET
| SIZE | SMALLINT | SOME | SPACE | SQL | SQLCODE
| SQLERROR | SQLSTATE
| SUBSTRING | SUM | SYSTEM_USER
| TABLE | TEMPORARY
| THEN | TIME | TIMESTAMP
| TIMEZONE_HOUR | TIMEZONE_MINUTE
| TO | TRAILING | TRANSACTION
| TRANSLATE | TRANSLATION | TRIM | TRUE
| UNION | UNIQUE | UNKNOWN | UPDATE | UPPER | USAGE
| USER | USING
| VALUE | VALUES | VARCHAR | VARYING | VIEW
| WHEN | WHENEVER | WHERE | WITH | WORK | WRITE
| YEAR
| ZONE
<non-reserved word> ::=
ADA
| C | CATALOG_NAME
| CHARACTER_SET_CATALOG | CHARACTER_SET_NAME
| CHARACTER_SET_SCHEMA | CLASS_ORIGIN | COBOL | COLLATION_CATALOG
| COLLATION_NAME | COLLATION_SCHEMA | COLUMN_NAME | COMMAND_FUNCTION
| COMMITTED
| CONDITION_NUMBER | CONNECTION_NAME | CONSTRAINT_CATALOG | CONSTRAINT_NAME
| CONSTRAINT_SCHEMA | CURSOR_NAME
| DATA | DATETIME_INTERVAL_CODE
| DATETIME_INTERVAL_PRECISION | DYNAMIC_FUNCTION
| FORTRAN
| LENGTH
| MESSAGE_LENGTH | MESSAGE_OCTET_LENGTH | MESSAGE_TEXT | MORE | MUMPS
| NAME | NULLABLE | NUMBER
| PASCAL | PLI
| REPEATABLE | RETURNED_LENGTH | RETURNED_OCTET_LENGTH | RETURNED_SQLSTATE
| ROW_COUNT
| SCALE | SCHEMA_NAME | SERIALIZABLE | SERVER_NAME | SUBCLASS_ORIGIN
| TABLE_NAME | TYPE
| UNCOMMITTED | UNNAMED
<unsigned numeric literal> ::=
<exact numeric literal>
| <approximate numeric literal>
<exact numeric literal> ::=
<unsigned integer> [ <period> [ <unsigned integer> ] ]
| <period> <unsigned integer>
<unsigned integer> ::= <digit>...
<approximate numeric literal> ::= <mantissa> E <exponent>
<mantissa> ::= <exact numeric literal>
<exponent> ::= <signed integer>
<signed integer> ::= [ <sign> ] <unsigned integer>
<sign> ::= <plus sign> | <minus sign>
<national character string literal> ::=
N <quote> [ <character representation>... ] <quote>
[ ( <separator>... <quote> [ <character representation>... ] <quote> )... ]
<character representation> ::=
<nonquote character>
| <quote symbol>
<nonquote character> ::= !! <EMPHASIS>(See the Syntax Rules.)
<quote symbol> ::= <quote><quote>
<separator> ::= ( <comment> | <space> | <newline> )...
<comment> ::=
<comment introducer> [ <comment character>... ] <newline>
<comment introducer> ::= <minus sign><minus sign>[<minus sign>...]
<comment character> ::=
<nonquote character>
| <quote>
<newline> ::= !! <EMPHASIS>(implementation-defined end-of-line indicator)
<bit string literal> ::=
B <quote> [ <bit>... ] <quote>
[ ( <separator>... <quote> [ <bit>... ] <quote> )... ]
<bit> ::= 0 | 1
<hex string literal> ::=
X <quote> [ <hexit>... ] <quote>
[ ( <separator>... <quote> [ <hexit>... ] <quote> )... ]
<hexit> ::= <digit> | A | B | C | D | E | F | a | b | c | d | e | f
<delimiter token> ::=
<character string literal>
| <date string>
| <time string>
| <timestamp string>
| <interval string>
| <delimited identifier>
| <SQL special character>
| <not equals operator>
| <greater than or equals operator>
| <less than or equals operator>
| <concatenation operator>
| <double period>
| <left bracket>
| <right bracket>
<character string literal> ::=
[ <introducer><character set specification> ]
<quote> [ <character representation>... ] <quote>
[ ( <separator>... <quote> [ <character representation>... ] <quote> )... ]
<introducer> ::= <underscore>
<character set specification> ::=
<standard character repertoire name>
| <implementation-defined character repertoire name>
| <user-defined character repertoire name>
| <standard universal character form-of-use name>
| <implementation-defined universal character form-of-use name>
<standard character repertoire name> ::= <character set name>
<character set name> ::= [ <schema name> <period> ]
<SQL language identifier>
<schema name> ::=
[ <catalog name> <period> ] <unqualified schema name>
<catalog name> ::= <identifier>
<identifier> ::=
[ <introducer><character set specification> ] <actual identifier>
<actual identifier> ::=
<regular identifier>
| <delimited identifier>
<delimited identifier> ::=
<double quote> <delimited identifier body> <double quote>
<delimited identifier body> ::= <delimited identifier part>...
<delimited identifier part> ::=
<nondoublequote character>
| <doublequote symbol>
<nondoublequote character> ::= <EMPHASIS>(!! See the Syntax Rules)
<doublequote symbol> ::= <double quote><double quote>
<unqualified schema name> ::= <identifier>
<SQL language identifier> ::=
<SQL language identifier start>
[ ( <underscore> | <SQL language identifier part> )... ]
<SQL language identifier start> ::= <simple Latin letter>
<SQL language identifier part> ::=
<simple Latin letter>
| <digit>
<implementation-defined character repertoire name> ::=
<character set name>
<user-defined character repertoire name> ::= <character set name>
<standard universal character form-of-use name> ::=
<character set name>
<implementation-defined universal character form-of-use name> ::=
<character set name>
<date string> ::=
<quote> <date value> <quote>
<date value> ::=
<years value> <minus sign> <months value>
<minus sign> <days value>
<years value> ::= <datetime value>
<datetime value> ::= <unsigned integer>
<months value> ::= <datetime value>
<days value> ::= <datetime value>
<time string> ::=
<quote> <time value> [ <time zone interval> ] <quote>
<time value> ::=
<hours value> <colon> <minutes value> <colon> <seconds value>
<hours value> ::= <datetime value>
<minutes value> ::= <datetime value>
<seconds value> ::=
<seconds integer value> [ <period> [ <seconds fraction> ] ]
<seconds integer value> ::= <unsigned integer>
<seconds fraction> ::= <unsigned integer>
<time zone interval> ::=
<sign> <hours value> <colon> <minutes value>
<timestamp string> ::=
<quote> <date value> <space> <time value>
[ <time zone interval> ] <quote>
<interval string> ::=
<quote> ( <year-month literal> | <day-time literal> ) <quote>
<year-month literal> ::=
<years value>
| [ <years value> <minus sign> ] <months value>
<day-time literal> ::=
<day-time interval>
| <time interval>
<day-time interval> ::=
<days value>
[ <space> <hours value> [ <colon> <minutes value>
[ <colon> <seconds value> ] ] ]
<time interval> ::=
<hours value> [ <colon> <minutes value> [ <colon> <seconds value> ] ]
| <minutes value> [ <colon> <seconds value> ]
| <seconds value>
<not equals operator> ::= <>
<greater than or equals operator> ::= >=
<less than or equals operator> ::= <=
<concatenation operator> ::= ||
<double period> ::= ..
<module> ::=
<module name clause>
<language clause>
<module authorization clause>
[ <temporary table declaration>... ]
<module contents>...
<module name clause> ::=
MODULE [ <module name> ]
[ <module character set specification> ]
<module name> ::= <identifier>
<module character set specification> ::=
NAMES ARE <character set specification>
<language clause> ::=
LANGUAGE <language name>
<language name> ::=
ADA | C | COBOL | FORTRAN | MUMPS | PASCAL | PLI
<module authorization clause> ::=
SCHEMA <schema name>
| AUTHORIZATION <module authorization identifier>
| SCHEMA <schema name>
AUTHORIZATION <module authorization identifier>
<module authorization identifier> ::=
<authorization identifier>
<authorization identifier> ::= <identifier>
<temporary table declaration> ::=
DECLARE LOCAL TEMPORARY TABLE
<qualified local table name>
<table element list>
[ ON COMMIT ( PRESERVE | DELETE ) ROWS ]
<qualified local table name> ::=
MODULE <period> <local table name>
<local table name> ::= <qualified identifier>
<qualified identifier> ::= <identifier>
<table element list> ::=
<left paren> <table element> [ ( <comma> <table element> )... ] <right paren>
<table element> ::=
<column definition>
| <table constraint definition>
<column definition> ::=
<column name> ( <data type> | <domain name> )
[ <default clause> ]
[ <column constraint definition>... ]
[ <collate clause> ]
<column name> ::= <identifier>
<data type> ::=
<character string type>
[ CHARACTER SET <character set specification> ]
| <national character string type>
| <bit string type>
| <numeric type>
| <datetime type>
| <interval type>
<character string type> ::=
CHARACTER [ <left paren> <length> <right paren> ]
| CHAR [ <left paren> <length> <right paren> ]
| CHARACTER VARYING <left paren> <length> <right paren>
| CHAR VARYING <left paren> <length> <right paren>
| VARCHAR <left paren> <length> <right paren>
<length> ::= <unsigned integer>
<national character string type> ::=
NATIONAL CHARACTER [ <left paren> <length> <right paren> ]
| NATIONAL CHAR [ <left paren> <length> <right paren> ]
| NCHAR [ <left paren> <length> <right paren> ]
| NATIONAL CHARACTER VARYING <left paren> <length> <right paren>
| NATIONAL CHAR VARYING <left paren> <length> <right paren>
| NCHAR VARYING <left paren> <length> <right paren>
<bit string type> ::=
BIT [ <left paren> <length> <right paren> ]
| BIT VARYING <left paren> <length> <right paren>
<numeric type> ::=
<exact numeric type>
| <approximate numeric type>
<exact numeric type> ::=
NUMERIC [ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
| DECIMAL [ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
| DEC [ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
| INTEGER
| INT
| SMALLINT
<precision> ::= <unsigned integer>
<scale> ::= <unsigned integer>
<approximate numeric type> ::=
FLOAT [ <left paren> <precision> <right paren> ]
| REAL
| DOUBLE PRECISION
<datetime type> ::=
DATE
| TIME [ <left paren> <time precision> <right paren> ]
[ WITH TIME ZONE ]
| TIMESTAMP [ <left paren> <timestamp precision> <right paren> ]
[ WITH TIME ZONE ]
<time precision> ::= <time fractional seconds precision>
<time fractional seconds precision> ::= <unsigned integer>
<timestamp precision> ::= <time fractional seconds precision>
<interval type> ::= INTERVAL <interval qualifier>
<interval qualifier> ::=
<start field> TO <end field>
| <single datetime field>
<start field> ::=
<non-second datetime field>
[ <left paren> <interval leading field precision> <right paren> ]
<non-second datetime field> ::= YEAR | MONTH | DAY | HOUR
| MINUTE
<interval leading field precision> ::= <unsigned integer>
<end field> ::=
<non-second datetime field>
| SECOND [ <left paren> <interval fractional seconds precision> <right paren> ]
<interval fractional seconds precision> ::= <unsigned integer>
<single datetime field> ::=
<non-second datetime field>
[ <left paren> <interval leading field precision> <right paren> ]
| SECOND [ <left paren> <interval leading field precision>
[ <comma> <interval fractional seconds precision> ] <right paren> ]
<domain name> ::= <qualified name>
<qualified name> ::=
[ <schema name> <period> ] <qualified identifier>
<default clause> ::=
DEFAULT <default option>
<default option> ::=
<literal>
| <datetime value function>
| USER
| CURRENT_USER
| SESSION_USER
| SYSTEM_USER
| NULL
<literal> ::=
<signed numeric literal>
| <general literal>
<signed numeric literal> ::=
[ <sign> ] <unsigned numeric literal>
<general literal> ::=
<character string literal>
| <national character string literal>
| <bit string literal>
| <hex string literal>
| <datetime literal>
| <interval literal>
<datetime literal> ::=
<date literal>
| <time literal>
| <timestamp literal>
<date literal> ::=
DATE <date string>
<time literal> ::=
TIME <time string>
<timestamp literal> ::=
TIMESTAMP <timestamp string>
<interval literal> ::=
INTERVAL [ <sign> ] <interval string> <interval qualifier>
<datetime value function> ::=
<current date value function>
| <current time value function>
| <current timestamp value function>
<current date value function> ::= CURRENT_DATE
<current time value function> ::=
CURRENT_TIME [ <left paren> <time precision> <right paren> ]
<current timestamp value function> ::=
CURRENT_TIMESTAMP [ <left paren> <timestamp precision> <right paren> ]
<column constraint definition> ::=
[ <constraint name definition> ]
<column constraint>
[ <constraint attributes> ]
<constraint name definition> ::= CONSTRAINT <constraint name>
<constraint name> ::= <qualified name>
<column constraint> ::=
NOT NULL
| <unique specification>
| <references specification>
| <check constraint definition>
<unique specification> ::=
UNIQUE | PRIMARY KEY
<references specification> ::=
REFERENCES <referenced table and columns>
[ MATCH <match type> ]
[ <referential triggered action> ]
<referenced table and columns> ::=
<table name> [ <left paren> <reference column list> <right paren> ]
<table name> ::=
<qualified name>
| <qualified local table name>
<reference column list> ::= <column name list>
<column name list> ::=
<column name> [ ( <comma> <column name> )... ]
<match type> ::=
FULL
| PARTIAL
<referential triggered action> ::=
<update rule> [ <delete rule> ]
| <delete rule> [ <update rule> ]
<update rule> ::= ON UPDATE <referential action>
<referential action> ::=
CASCADE
| SET NULL
| SET DEFAULT
| NO ACTION
<delete rule> ::= ON DELETE <referential action>
<check constraint definition> ::=
CHECK
<left paren> <search condition> <right paren>
<search condition> ::=
<boolean term>
| <search condition> OR <boolean term>
<boolean term> ::=
<boolean factor>
| <boolean term> AND <boolean factor>
<boolean factor> ::=
[ NOT ] <boolean test>
<boolean test> ::=
<boolean primary> [ IS [ NOT ]
<truth value> ]
<boolean primary> ::=
<predicate>
| <left paren> <search condition> <right paren>
<predicate> ::=
<comparison predicate>
| <between predicate>
| <in predicate>
| <like predicate>
| <null predicate>
| <quantified comparison predicate>
| <exists predicate>
| <unique predicate>
| <match predicate>
| <overlaps predicate>
<comparison predicate> ::=
<row value constructor> <comp op>
<row value constructor>
<row value constructor> ::=
<row value constructor element>
| <left paren> <row value constructor list> <right paren>
| <row subquery>
<row value constructor element> ::=
<value expression>
| <null specification>
| <default specification>
<value expression> ::=
<numeric value expression>
| <string value expression>
| <datetime value expression>
| <interval value expression>
<numeric value expression> ::=
<term>
| <numeric value expression> <plus sign> <term>
| <numeric value expression> <minus sign> <term>
<term> ::=
<factor>
| <term> <asterisk> <factor>
| <term> <solidus> <factor>
<factor> ::=
[ <sign> ] <numeric primary>
<numeric primary> ::=
<value expression primary>
| <numeric value function>
<value expression primary> ::=
<unsigned value specification>
| <column reference>
| <set function specification>
| <scalar subquery>
| <case expression>
| <left paren> <value expression> <right paren>
| <cast specification>
<unsigned value specification> ::=
<unsigned literal>
| <general value specification>
<unsigned literal> ::=
<unsigned numeric literal>
| <general literal>
<general value specification> ::=
<parameter specification>
| <dynamic parameter specification>
| <variable specification>
| USER
| CURRENT_USER
| SESSION_USER
| SYSTEM_USER
| VALUE
<parameter specification> ::=
<parameter name> [ <indicator parameter> ]
<parameter name> ::= <colon> <identifier>
<indicator parameter> ::=
[ INDICATOR ] <parameter name>
<dynamic parameter specification> ::= <question mark>
<variable specification> ::=
<embedded variable name> [ <indicator variable> ]
<embedded variable name> ::=
<colon><host identifier>
<host identifier> ::=
<Ada host identifier>
| <C host identifier>
| <COBOL host identifier>
| <Fortran host identifier>
| <MUMPS host identifier>
| <Pascal host identifier>
| <PL/I host identifier>
<Ada host identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)
<C host identifier> ::=
!! <EMPHASIS>(See the Syntax Rules.)
<COBOL host identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)
<Fortran host identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)
<MUMPS host identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)
<Pascal host identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)
<PL/I host identifier> ::= !! <EMPHASIS>(See the Syntax Rules.)
<indicator variable> ::=
[ INDICATOR ] <embedded variable name>
<column reference> ::= [ <qualifier> <period> ] <column name>
<qualifier> ::=
<table name>
| <correlation name>
<correlation name> ::= <identifier>
<set function specification> ::=
COUNT <left paren> <asterisk> <right paren>
| <general set function>
<general set function> ::=
<set function type>
<left paren> [ <set quantifier> ] <value expression> <right paren>
<set function type> ::=
AVG | MAX | MIN | SUM | COUNT
<set quantifier> ::= DISTINCT | ALL
<scalar subquery> ::= <subquery>
<subquery> ::= <left paren> <query expression> <right paren>
<query expression> ::=
<non-join query expression>
| <joined table>
<non-join query expression> ::=
<non-join query term>
| <query expression> UNION [ ALL ]
[ <corresponding spec> ] <query term>
| <query expression> EXCEPT [ ALL ]
[ <corresponding spec> ] <query term>
<non-join query term> ::=
<non-join query primary>
| <query term> INTERSECT [ ALL ]
[ <corresponding spec> ] <query primary>
<non-join query primary> ::=
<simple table>
| <left paren> <non-join query expression> <right paren>
<simple table> ::=
<query specification>
| <table value constructor>
| <explicit table>
<query specification> ::=
SELECT [ <set quantifier> ] <select list> <table expression>
<select list> ::=
<asterisk>
| <select sublist> [ ( <comma> <select sublist> )... ]
<select sublist> ::=
<derived column>
| <qualifier> <period> <asterisk>
<derived column> ::= <value expression> [ <as clause> ]
<as clause> ::= [ AS ] <column name>
<table expression> ::=
<from clause>
[ <where clause> ]
[ <group by clause> ]
[ <having clause> ]
<from clause> ::= FROM <table reference>
[ ( <comma> <table reference> )... ]
<table reference> ::=
<table name> [ [ AS ] <correlation name>
[ <left paren> <derived column list> <right paren> ] ]
| <derived table> [ AS ] <correlation name>
[ <left paren> <derived column list> <right paren> ]
| <joined table>
<derived column list> ::= <column name list>
<derived table> ::= <table subquery>
<table subquery> ::= <subquery>
<joined table> ::=
<cross join>
| <qualified join>
| <left paren> <joined table> <right paren>
<cross join> ::=
<table reference> CROSS JOIN <table reference>
<qualified join> ::=
<table reference> [ NATURAL ] [ <join type> ] JOIN
<table reference> [ <join specification> ]
<join type> ::=
INNER
| <outer join type> [ OUTER ]
| UNION
<outer join type> ::=
LEFT
| RIGHT
| FULL
<join specification> ::=
<join condition>
| <named columns join>
<join condition> ::= ON <search condition>
<named columns join> ::=
USING <left paren> <join column list> <right paren>
<join column list> ::= <column name list>
<where clause> ::= WHERE <search condition>
<group by clause> ::=
GROUP BY <grouping column reference list>
<grouping column reference list> ::=
<grouping column reference>
[ ( <comma> <grouping column reference> )... ]
<grouping column reference> ::=
<column reference> [ <collate clause> ]
<collate clause> ::= COLLATE <collation name>
<collation name> ::= <qualified name>
<having clause> ::= HAVING <search condition>
<table value constructor> ::=
VALUES <table value constructor list>
<table value constructor list> ::=
<row value constructor> [ ( <comma> <row value constructor> )... ]
<explicit table> ::= TABLE <table name>
<query term> ::=
<non-join query term>
| <joined table>
<corresponding spec> ::=
CORRESPONDING [ BY <left paren> <corresponding column list> <right paren> ]
<corresponding column list> ::= <column name list>
<query primary> ::=
<non-join query primary>
| <joined table>
<case expression> ::=
<case abbreviation>
| <case specification>
<case abbreviation> ::=
NULLIF <left paren> <value expression> <comma>
<value expression> <right paren>
| COALESCE <left paren> <value expression>
( <comma> <value expression> )... <right paren>
<case specification> ::=
<simple case>
| <searched case>
<simple case> ::=
CASE <case operand>
<simple when clause>...
[ <else clause> ]
END
<case operand> ::= <value expression>
<simple when clause> ::= WHEN <when operand> THEN <result>
<when operand> ::= <value expression>
<result> ::= <result expression> | NULL
<result expression> ::= <value expression>
<else clause> ::= ELSE <result>
<searched case> ::=
CASE
<searched when clause>...
[ <else clause> ]
END
<searched when clause> ::= WHEN <search condition> THEN <result>
<cast specification> ::=
CAST <left paren> <cast operand> AS
<cast target> <right paren>
<cast operand> ::=
<value expression>
| NULL
<cast target> ::=
<domain name>
| <data type>
<numeric value function> ::=
<position expression>
| <extract expression>
| <length expression>
<position expression> ::=
POSITION <left paren> <character value expression>
IN <character value expression> <right paren>
<character value expression> ::=
<concatenation>
| <character factor>
<concatenation> ::=
<character value expression> <concatenation operator>
<character factor>
<character factor> ::=
<character primary> [ <collate clause> ]
<character primary> ::=
<value expression primary>
| <string value function>
<string value function> ::=
<character value function>
| <bit value function>
<character value function> ::=
<character substring function>
| <fold>
| <form-of-use conversion>
| <character translation>
| <trim function>
<character substring function> ::=
SUBSTRING <left paren> <character value expression> FROM <start position>
[ FOR <string length> ] <right paren>
<start position> ::= <numeric value expression>
<string length> ::= <numeric value expression>
<fold> ::= ( UPPER | LOWER )
<left paren> <character value expression> <right paren>
<form-of-use conversion> ::=
CONVERT <left paren> <character value expression>
USING <form-of-use conversion name> <right paren>
<form-of-use conversion name> ::= <qualified name>
<character translation> ::=
TRANSLATE <left paren> <character value expression>
USING <translation name> <right paren>
<translation name> ::= <qualified name>
<trim function> ::=
TRIM <left paren> <trim operands> <right paren>
<trim operands> ::=
[ [ <trim specification> ] [ <trim character> ] FROM ] <trim source>
<trim specification> ::=
LEADING
| TRAILING
| BOTH
<trim character> ::= <character value expression>
<trim source> ::= <character value expression>
<bit value function> ::=
<bit substring function>
<bit substring function> ::=
SUBSTRING <left paren> <bit value expression> FROM <start position>
[ FOR <string length> ] <right paren>
<bit value expression> ::=
<bit concatenation>
| <bit factor>
<bit concatenation> ::=
<bit value expression> <concatenation operator> <bit factor>
<bit factor> ::= <bit primary>
<bit primary> ::=
<value expression primary>
| <string value function>
<extract expression> ::=
EXTRACT <left paren> <extract field>
FROM <extract source> <right paren>
<extract field> ::=
<datetime field>
| <time zone field>
<datetime field> ::=
<non-second datetime field>
| SECOND
<time zone field> ::=
TIMEZONE_HOUR
| TIMEZONE_MINUTE
<extract source> ::=
<datetime value expression>
| <interval value expression>
<datetime value expression> ::=
<datetime term>
| <interval value expression> <plus sign> <datetime term>
| <datetime value expression> <plus sign> <interval term>
| <datetime value expression> <minus sign> <interval term>
<interval term> ::=
<interval factor>
| <interval term 2> <asterisk> <factor>
| <interval term 2> <solidus> <factor>
| <term> <asterisk> <interval factor>
<interval factor> ::=
[ <sign> ] <interval primary>
<interval primary> ::=
<value expression primary> [ <interval qualifier> ]
<interval term 2> ::= <interval term>
<interval value expression> ::=
<interval term>
| <interval value expression 1> <plus sign> <interval term 1>
| <interval value expression 1> <minus sign> <interval term 1>
| <left paren> <datetime value expression> <minus sign>
<datetime term> <right paren> <interval qualifier>
<interval value expression 1> ::= <interval value expression>
<interval term 1> ::= <interval term>
<datetime term> ::=
<datetime factor>
<datetime factor> ::=
<datetime primary> [ <time zone> ]
<datetime primary> ::=
<value expression primary>
| <datetime value function>
<time zone> ::=
AT <time zone specifier>
<time zone specifier> ::=
LOCAL
| TIME ZONE <interval value expression>
<length expression> ::=
<char length expression>
| <octet length expression>
| <bit length expression>
<char length expression> ::=
( CHAR_LENGTH | CHARACTER_LENGTH )
<left paren> <string value expression> <right paren>
<string value expression> ::=
<character value expression>
| <bit value expression>
<octet length expression> ::=
OCTET_LENGTH <left paren> <string value expression> <right paren>
<bit length expression> ::=
BIT_LENGTH <left paren> <string value expression> <right paren>
<null specification> ::=
NULL
<default specification> ::=
DEFAULT
<row value constructor list> ::=
<row value constructor element>
[ ( <comma> <row value constructor element> )... ]
<row subquery> ::= <subquery>
<comp op> ::=
<equals operator>
| <not equals operator>
| <less than operator>
| <greater than operator>
| <less than or equals operator>
| <greater than or equals operator>
<between predicate> ::=
<row value constructor> [ NOT ] BETWEEN
<row value constructor> AND <row value constructor>
<in predicate> ::=
<row value constructor>
[ NOT ] IN <in predicate value>
<in predicate value> ::=
<table subquery>
| <left paren> <in value list> <right paren>
<in value list> ::=
<value expression> ( <comma> <value expression> )...
<like predicate> ::=
<match value> [ NOT ] LIKE <pattern>
[ ESCAPE <escape character> ]
<match value> ::= <character value expression>
<pattern> ::= <character value expression>
<escape character> ::= <character value expression>
<null predicate> ::= <row value constructor>
IS [ NOT ] NULL
<quantified comparison predicate> ::=
<row value constructor> <comp op> <quantifier> <table subquery>
<quantifier> ::= <all> | <some>
<all> ::= ALL
<some> ::= SOME | ANY
<exists predicate> ::= EXISTS <table subquery>
<unique predicate> ::= UNIQUE <table subquery>
<match predicate> ::=
<row value constructor> MATCH [ UNIQUE ]
[ PARTIAL | FULL ] <table subquery>
<overlaps predicate> ::=
<row value constructor 1> OVERLAPS <row value constructor 2>
<row value constructor 1> ::= <row value constructor>
<row value constructor 2> ::= <row value constructor>
<truth value> ::=
TRUE
| FALSE
| UNKNOWN
<constraint attributes> ::=
<constraint check time> [ [ NOT ] DEFERRABLE ]
| [ NOT ] DEFERRABLE [ <constraint check time> ]
<constraint check time> ::=
INITIALLY DEFERRED
| INITIALLY IMMEDIATE
<table constraint definition> ::=
[ <constraint name definition> ]
<table constraint> [ <constraint attributes> ]
<table constraint> ::=
<unique constraint definition>
| <referential constraint definition>
| <check constraint definition>
<unique constraint definition> ::=
<unique specification> even in SQL3)
<unique specification>
<left paren> <unique column list> <right paren>
<unique column list> ::= <column name list>
<referential constraint definition> ::=
FOREIGN KEY
<left paren> <referencing columns> <right paren>
<references specification>
<referencing columns> ::=
<reference column list>
<module contents> ::=
<declare cursor>
| <dynamic declare cursor>
| <procedure>
<declare cursor> ::=
DECLARE <cursor name> [ INSENSITIVE ] [ SCROLL ] CURSOR
FOR <cursor specification>
<cursor name> ::= <identifier>
<cursor specification> ::=
<query expression> [ <order by clause> ]
[ <updatability clause> ]
<order by clause> ::=
ORDER BY <sort specification list>
<sort specification list> ::=
<sort specification> [ ( <comma> <sort specification> )... ]
<sort specification> ::=
<sort key> [ <collate clause> ] [ <ordering specification> ]
<sort key> ::=
<column name>
| <unsigned integer>
<ordering specification> ::= ASC | DESC
<updatability clause> ::=
FOR
( READ ONLY |
UPDATE [ OF <column name list> ] )
<dynamic declare cursor> ::=
DECLARE <cursor name> [ INSENSITIVE ] [ SCROLL ] CURSOR
FOR <statement name>
<statement name> ::= <identifier>
<procedure> ::=
PROCEDURE <procedure name>
<parameter declaration list> <semicolon>
<SQL procedure statement> <semicolon>
<procedure name> ::= <identifier>
<parameter declaration list> ::=
<left paren> <parameter declaration>
[ ( <comma> <parameter declaration> )... ] <right paren>
| <parameter declaration>...
<parameter declaration> ::=
<parameter name> <data type>
| <status parameter>
<status parameter> ::=
SQLCODE | SQLSTATE
<SQL procedure statement> ::=
<SQL schema statement>
| <SQL data statement>
| <SQL transaction statement>
| <SQL connection statement>
| <SQL session statement>
| <SQL dynamic statement>
| <SQL diagnostics statement>
<SQL schema statement> ::=
<SQL schema definition statement>
| <SQL schema manipulation statement>
<SQL schema definition statement> ::=
<schema definition>
| <table definition>
| <view definition>
| <grant statement>
| <domain definition>
| <character set definition>
| <collation definition>
| <translation definition>
| <assertion definition>
<schema definition> ::=
CREATE SCHEMA <schema name clause>
[ <schema character set specification> ]
[ <schema element>... ]
<schema name clause> ::=
<schema name>
| AUTHORIZATION <schema authorization identifier>
| <schema name> AUTHORIZATION
<schema authorization identifier>
<schema authorization identifier> ::=
<authorization identifier>
<schema character set specification> ::=
DEFAULT CHARACTER
SET <character set specification>
<schema element> ::=
<domain definition>
| <table definition>
| <view definition>
| <grant statement>
| <assertion definition>
| <character set definition>
| <collation definition>
| <translation definition>
<domain definition> ::=
CREATE DOMAIN <domain name>
[ AS ] <data type>
[ <default clause> ]
[ <domain constraint>... ]
[ <collate clause> ]
<domain constraint> ::=
[ <constraint name definition> ]
<check constraint definition> [ <constraint attributes> ]
<table definition> ::=
CREATE [ ( GLOBAL | LOCAL ) TEMPORARY ] TABLE
<table name>
<table element list>
[ ON COMMIT ( DELETE | PRESERVE ) ROWS ]
<view definition> ::=
CREATE VIEW <table name> [ <left paren> <view column list>
<right paren> ]
AS <query expression>
[ WITH [ <levels clause> ] CHECK OPTION ]
<view column list> ::= <column name list>
<levels clause> ::=
CASCADED | LOCAL
<grant statement> ::=
GRANT <privileges> ON <object name>
TO <grantee> [ ( <comma> <grantee> )... ]
[ WITH GRANT OPTION ]
<privileges> ::=
ALL PRIVILEGES
| <action list>
<action list> ::= <action> [ ( <comma> <action> )... ]
<action> ::=
SELECT
| DELETE
| INSERT [ <left paren> <privilege column list> <right paren> ]
| UPDATE [ <left paren> <privilege column list> <right paren> ]
| REFERENCES [ <left paren> <privilege column list> <right paren> ]
| USAGE
<privilege column list> ::= <column name list>
<object name> ::=
[ TABLE ] <table name>
| DOMAIN <domain name>
| COLLATION <collation name>
| CHARACTER SET <character set name>
| TRANSLATION <translation name>
<grantee> ::=
PUBLIC
| <authorization identifier>
<assertion definition> ::=
CREATE ASSERTION <constraint name> <assertion check>
[ <constraint attributes> ]
<assertion check> ::=
CHECK
<left paren> <search condition> <right paren>
<character set definition> ::=
CREATE CHARACTER SET <character set name>
[ AS ]
<character set source>
[ <collate clause> | <limited collation definition> ]
<character set source> ::=
GET <existing character set name>
<existing character set name> ::=
<standard character repertoire name>
| <implementation-defined character repertoire name>
| <schema character set name>
<schema character set name> ::= <character set name>
<limited collation definition> ::=
COLLATION FROM <collation source>
<collation source> ::=
<collating sequence definition>
| <translation collation>
<collating sequence definition> ::=
<external collation>
| <schema collation name>
| DESC <left paren> <collation name> <right paren>
| DEFAULT
<external collation> ::=
EXTERNAL <left paren> <quote> <external collation name> <quote> <right paren>
<external collation name> ::=
<standard collation name>
| <implementation-defined collation name>
<standard collation name> ::= <collation name>
<implementation-defined collation name> ::= <collation name>
<schema collation name> ::= <collation name>
<translation collation> ::=
TRANSLATION <translation name>
[ THEN COLLATION <collation name> ]
<collation definition> ::=
CREATE COLLATION <collation name> FOR
<character set specification>
FROM <collation source>
[ <pad attribute> ]
<pad attribute> ::=
NO PAD
| PAD SPACE
<translation definition> ::=
CREATE TRANSLATION <translation name>
FOR <source character set specification>
TO <target character set specification>
FROM <translation source>
<source character set specification> ::= <character set specification>
<target character set specification> ::= <character set specification>
<translation source> ::=
<translation specification>
<translation specification> ::=
<external translation>
| IDENTITY
| <schema translation name>
<external translation> ::=
EXTERNAL <left paren> <quote> <external translation name> <quote> <right paren>
<external translation name> ::=
<standard translation name>
| <implementation-defined translation name>
<standard translation name> ::= <translation name>
<implementation-defined translation name> ::= <translation name>
<schema translation name> ::= <translation name>
<SQL schema manipulation statement> ::=
<drop schema statement>
| <alter table statement>
| <drop table statement>
| <drop view statement>
| <revoke statement>
| <alter domain statement>
| <drop domain statement>
| <drop character set statement>
| <drop collation statement>
| <drop translation statement>
| <drop assertion statement>
<drop schema statement> ::=
DROP SCHEMA <schema name> <drop behavior>
<drop behavior> ::= CASCADE | RESTRICT
<alter table statement> ::=
ALTER TABLE <table name> <alter table action>
<alter table action> ::=
<add column definition>
| <alter column definition>
| <drop column definition>
| <add table constraint definition>
| <drop table constraint definition>
<add column definition> ::=
ADD [ COLUMN ] <column definition>
<alter column definition> ::=
ALTER [ COLUMN ] <column name> <alter column action>
<alter column action> ::=
<set column default clause>
| <drop column default clause>
<set column default clause> ::=
SET <default clause>
<drop column default clause> ::=
DROP DEFAULT
<drop column definition> ::=
DROP [ COLUMN ] <column name> <drop behavior>
<add table constraint definition> ::=
ADD <table constraint definition>
<drop table constraint definition> ::=
DROP CONSTRAINT <constraint name> <drop behavior>
<drop table statement> ::=
DROP TABLE <table name> <drop behavior>
<drop view statement> ::=
DROP VIEW <table name> <drop behavior>
<revoke statement> ::=
REVOKE [ GRANT OPTION FOR ]
<privileges>
ON <object name>
FROM <grantee> [ ( <comma> <grantee> )... ] <drop behavior>
<alter domain statement> ::=
ALTER DOMAIN <domain name> <alter domain action>
<alter domain action> ::=
<set domain default clause>
| <drop domain default clause>
| <add domain constraint definition>
| <drop domain constraint definition>
<set domain default clause> ::= SET <default clause>
<drop domain default clause> ::= DROP DEFAULT
<add domain constraint definition> ::=
ADD <domain constraint>
<drop domain constraint definition> ::=
DROP CONSTRAINT <constraint name>
<drop domain statement> ::=
DROP DOMAIN <domain name> <drop behavior>
<drop character set statement> ::=
DROP CHARACTER SET <character set name>
<drop collation statement> ::=
DROP COLLATION <collation name>
<drop translation statement> ::=
DROP TRANSLATION <translation name>
<drop assertion statement> ::=
DROP ASSERTION <constraint name>
<SQL data statement> ::=
<open statement>
| <fetch statement>
| <close statement>
| <select statement: single row>
| <SQL data change statement>
<open statement> ::=
OPEN <cursor name>
<fetch statement> ::=
FETCH [ [ <fetch orientation> ] FROM ]
<cursor name> INTO <fetch target list>
<fetch orientation> ::=
NEXT
| PRIOR
| FIRST
| LAST
| ( ABSOLUTE | RELATIVE ) <simple value specification>
<simple value specification> ::=
<parameter name>
| <embedded variable name>
| <literal>
<fetch target list> ::=
<target specification> [ ( <comma> <target specification> )... ]
<target specification> ::=
<parameter specification>
| <variable specification>
<close statement> ::=
CLOSE <cursor name>
<select statement: single row> ::=
SELECT [ <set quantifier> ] <select list>
INTO <select target list>
<table expression>
<select target list> ::=
<target specification> [ ( <comma> <target specification> )... ]
<SQL data change statement> ::=
<delete statement: positioned>
| <delete statement: searched>
| <insert statement>
| <update statement: positioned>
| <update statement: searched>
<delete statement: positioned> ::=
DELETE FROM <table name>
WHERE CURRENT OF <cursor name>
<delete statement: searched> ::=
DELETE FROM <table name>
[ WHERE <search condition> ]
<insert statement> ::=
INSERT INTO <table name>
<insert columns and source>
<insert columns and source> ::=
[ <left paren> <insert column list> <right paren> ]
<query expression>
| DEFAULT VALUES
<insert column list> ::= <column name list>
<update statement: positioned> ::=
UPDATE <table name>
SET <set clause list>
WHERE CURRENT OF <cursor name>
<set clause list> ::=
<set clause> [ ( <comma> <set clause> )... ]
<set clause> ::=
<object column> <equals operator> <update source>
<object column> ::= <column name>
<update source> ::=
<value expression>
| <null specification>
| DEFAULT
<update statement: searched> ::=
UPDATE <table name>
SET <set clause list>
[ WHERE <search condition> ]
<SQL transaction statement> ::=
<set transaction statement>
| <set constraints mode statement>
| <commit statement>
| <rollback statement>
<set transaction statement> ::=
SET TRANSACTION <transaction mode>
[ ( <comma> <transaction mode> )... ]
<transaction mode> ::=
<isolation level>
| <transaction access mode>
| <diagnostics size>
<isolation level> ::=
ISOLATION LEVEL <level of isolation>
<level of isolation> ::=
READ UNCOMMITTED
| READ COMMITTED
| REPEATABLE READ
| SERIALIZABLE
<transaction access mode> ::=
READ ONLY
| READ WRITE
<diagnostics size> ::=
DIAGNOSTICS SIZE <number of conditions>
<number of conditions> ::= <simple value specification>
<set constraints mode statement> ::=
SET CONSTRAINTS <constraint name list>
( DEFERRED | IMMEDIATE )
<constraint name list> ::=
ALL
| <constraint name> [ ( <comma> <constraint name> )... ]
<commit statement> ::=
COMMIT [ WORK ]
<rollback statement> ::=
ROLLBACK [ WORK ]
<SQL connection statement> ::=
<connect statement>
| <set connection statement>
| <disconnect statement>
<connect statement> ::=
CONNECT TO <connection target>
<connection target> ::=
<SQL-server name>
[ AS <connection name> ]
correspondence with Tony Gordon)
[ USER <user name> ]
| DEFAULT
<SQL-server name> ::= <simple value specification>
<connection name> ::= <simple value specification>
<user name> ::= <simple value specification>
<set connection statement> ::=
SET CONNECTION <connection object>
<connection object> ::=
DEFAULT
| <connection name>
<disconnect statement> ::=
DISCONNECT <disconnect object>
<disconnect object> ::=
<connection object>
| ALL
| CURRENT
<SQL session statement> ::=
<set catalog statement>
| <set schema statement>
| <set names statement>
| <set session authorization identifier statement>
| <set local time zone statement>
<set catalog statement> ::=
SET CATALOG <value specification>
<value specification> ::=
<literal>
| <general value specification>
<set schema statement> ::=
SET SCHEMA <value specification>
<set names statement> ::=
SET NAMES <value specification>
<set session authorization identifier statement> ::=
SET SESSION AUTHORIZATION
<value specification>
<set local time zone statement> ::=
SET TIME ZONE
<set time zone value>
<set time zone value> ::=
<interval value expression>
| LOCAL
<SQL dynamic statement> ::=
<system descriptor statement>
| <prepare statement>
| <deallocate prepared statement>
| <describe statement>
| <execute statement>
| <execute immediate statement>
| <SQL dynamic data statement>
<system descriptor statement> ::=
<allocate descriptor statement>
| <deallocate descriptor statement>
| <set descriptor statement>
| <get descriptor statement>
<allocate descriptor statement> ::=
ALLOCATE DESCRIPTOR <descriptor name>
[ WITH MAX <occurrences> ]
<descriptor name> ::=
[ <scope option> ] <simple value specification>
<scope option> ::=
GLOBAL
| LOCAL
<occurrences> ::= <simple value specification>
<deallocate descriptor statement> ::=
DEALLOCATE DESCRIPTOR <descriptor name>
<set descriptor statement> ::=
SET DESCRIPTOR <descriptor name>
<set descriptor information>
<set descriptor information> ::=
<set count>
| VALUE <item number>
<set item information> [ ( <comma> <set item information> )... ]
<set count> ::=
COUNT <equals operator> <simple value specification 1>
<simple value specification 1> ::= <simple value specification>
<item number> ::= <simple value specification>
<set item information> ::=
<descriptor item name> <equals operator> <simple value specification 2>
<descriptor item name> ::=
TYPE
| LENGTH
| OCTET_LENGTH
| RETURNED_LENGTH
| RETURNED_OCTET_LENGTH
| PRECISION
| SCALE
| DATETIME_INTERVAL_CODE
| DATETIME_INTERVAL_PRECISION
| NULLABLE
| INDICATOR
| DATA
| NAME
| UNNAMED
| COLLATION_CATALOG
| COLLATION_SCHEMA
| COLLATION_NAME
| CHARACTER_SET_CATALOG
| CHARACTER_SET_SCHEMA
| CHARACTER_SET_NAME
<simple value specification 2> ::= <simple value specification>
<item number> ::= <simple value specification>
<get descriptor statement> ::=
GET DESCRIPTOR <descriptor name> <get descriptor information>
<get descriptor information> ::=
<get count>
| VALUE <item number>
<get item information> [ ( <comma> <get item information> )... ]
<get count> ::=
<simple target specification 1> <equals operator>
COUNT
<simple target specification 1> ::= <simple target specification>
<simple target specification> ::=
<parameter name>
| <embedded variable name>
<get item information> ::=
<simple target specification 2> <equals operator> <descriptor item name>>
<simple target specification 2> ::= <simple target specification>
<prepare statement> ::=
PREPARE <SQL statement name> FROM <SQL statement variable>
<SQL statement name> ::=
<statement name>
| <extended statement name>
<extended statement name> ::=
[ <scope option> ] <simple value specification>
<SQL statement variable> ::= <simple value specification>
<deallocate prepared statement> ::=
DEALLOCATE PREPARE <SQL statement name>
<describe statement> ::=
<describe input statement>
| <describe output statement>
<describe input statement> ::=
DESCRIBE INPUT <SQL statement name> <using descriptor>
<using descriptor> ::=
( USING | INTO ) SQL DESCRIPTOR <descriptor name>
<describe output statement> ::=
DESCRIBE [ OUTPUT ] <SQL statement name> <using descriptor>
<execute statement> ::=
EXECUTE <SQL statement name>
[ <result using clause> ]
[ <parameter using clause> ]
<result using clause> ::= <using clause>
<using clause> ::=
<using arguments>
| <using descriptor>
<using arguments> ::=
( USING | INTO ) <argument> [ ( <comma> <argument> )... ]
<argument> ::= <target specification>
<parameter using clause> ::= <using clause>
<execute immediate statement> ::=
EXECUTE IMMEDIATE <SQL statement variable>
<SQL dynamic data statement> ::=
<allocate cursor statement>
| <dynamic open statement>
| <dynamic fetch statement>
| <dynamic close statement>
| <dynamic delete statement: positioned>
| <dynamic update statement: positioned>
<allocate cursor statement> ::=
ALLOCATE <extended cursor name> [ INSENSITIVE ]
[ SCROLL ] CURSOR
FOR <extended statement name>
<extended cursor name> ::=
[ <scope option> ] <simple value specification>
<dynamic open statement> ::=
OPEN <dynamic cursor name> [ <using clause> ]
<dynamic cursor name> ::=
<cursor name>
| <extended cursor name>
<dynamic fetch statement> ::=
FETCH [ [ <fetch orientation> ] FROM ] <dynamic cursor name>
<using clause>
<dynamic close statement> ::=
CLOSE <dynamic cursor name>
<dynamic delete statement: positioned> ::=
DELETE FROM <table name>
WHERE CURRENT OF
<dynamic cursor name>
<dynamic update statement: positioned> ::=
UPDATE <table name>
SET <set clause>
[ ( <comma> <set clause> )... ]
WHERE CURRENT OF
<dynamic cursor name>
<SQL diagnostics statement> ::=
<get diagnostics statement>
<get diagnostics statement> ::=
GET DIAGNOSTICS <sql diagnostics information>
<sql diagnostics information> ::=
<statement information>
| <condition information>
<statement information> ::=
<statement information item> [ ( <comma> <statement information item> )... ]
<statement information item> ::=
<simple target specification> <equals operator> <statement information item name>
<statement information item name> ::=
NUMBER
| MORE
| COMMAND_FUNCTION
| DYNAMIC_FUNCTION
| ROW_COUNT
<condition information> ::=
EXCEPTION <condition number>
<condition information item> [ ( <comma> <condition information item> )... ]
<condition number> ::= <simple value specification>
<condition information item> ::=
<simple target specification> <equals operator> <condition information item name>
<condition information item name> ::=
CONDITION_NUMBER
| RETURNED_SQLSTATE
| CLASS_ORIGIN
| SUBCLASS_ORIGIN
| SERVER_NAME
| CONNECTION_NAME
| CONSTRAINT_CATALOG
| CONSTRAINT_SCHEMA
| CONSTRAINT_NAME
| CATALOG_NAME
| SCHEMA_NAME
| TABLE_NAME
| COLUMN_NAME
| CURSOR_NAME
| MESSAGE_TEXT
| MESSAGE_LENGTH
| MESSAGE_OCTET_LENGTH
<embedded SQL host program> ::=
<embedded SQL Ada program>
| <embedded SQL C program>
| <embedded SQL COBOL program>
| <embedded SQL Fortran program>
| <embedded SQL MUMPS program>
| <embedded SQL Pascal program>
| <embedded SQL PL/I program>
<embedded SQL Ada program> ::= !! <EMPHASIS>(See the Syntax Rules.)
<embedded SQL C program> ::=
!! <EMPHASIS>(See the Syntax Rules.)
<embedded SQL COBOL program> ::= !! <EMPHASIS>(See the Syntax Rules.)
<embedded SQL Fortran program> ::=
!! <EMPHASIS>(See the Syntax Rules.)
<embedded SQL MUMPS program> ::= !! <EMPHASIS>(See the Syntax Rules.)
<embedded SQL Pascal program> ::=
!! <EMPHASIS>(See the Syntax Rules.)
<embedded SQL PL/I program> ::= !! <EMPHASIS>(See the Syntax Rules.)
<embedded SQL declare section> ::=
<embedded SQL begin declare>
[ <embedded character set declaration> ]
[ <host variable definition>... ]
<embedded SQL end declare>
| <embedded SQL MUMPS declare>
<embedded SQL begin declare> ::=
<SQL prefix> BEGIN DECLARE SECTION
[ <SQL terminator> ]
<SQL prefix> ::=
EXEC SQL
| <ampersand>SQL<left paren>
<SQL terminator> ::=
END-EXEC
| <semicolon>
| <right paren>
<embedded character set declaration> ::=
SQL NAMES ARE <character set specification>
<host variable definition> ::=
<Ada variable definition>
| <C variable definition>
| <COBOL variable definition>
| <Fortran variable definition>
| <MUMPS variable definition>
| <Pascal variable definition>
| <PL/I variable definition>
<Ada variable definition> ::=
<Ada host identifier> [ ( <comma> <Ada host identifier> )... ] :
<Ada type specification> [ <Ada initial value> ]
<Ada type specification> ::=
<Ada qualified type specification>
| <Ada unqualified type specification>
<Ada qualified type specification> ::=
SQL_STANDARD.CHAR [ CHARACTER SET
[ IS ] <character set specification> ]
<left paren> 1 <double period> <length> <right paren>
| SQL_STANDARD.BIT
<left paren> 1 <double period> <length> <right paren>
| SQL_STANDARD.SMALLINT
| SQL_STANDARD.INT
| SQL_STANDARD.REAL
| SQL_STANDARD.DOUBLE_PRECISION
| SQL_STANDARD.SQLCODE_TYPE
| SQL_STANDARD.SQLSTATE_TYPE
| SQL_STANDARD.INDICATOR_TYPE
<Ada unqualified type specification> ::=
CHAR
<left paren> 1 <double period> <length> <right paren>
| BIT
<left paren> 1 <double period> <length> <right paren>
| SMALLINT
| INT
| REAL
| DOUBLE_PRECISION
| SQLCODE_TYPE
| SQLSTATE_TYPE
| INDICATOR_TYPE
<Ada initial value> ::=
<Ada assignment operator> <character representation>...
<Ada assignment operator> ::= <colon><equals operator>
<C variable definition> ::=
[ <C storage class> ]
[ <C class modifier> ]
<C variable specification>
<semicolon>
<C storage class> ::=
auto
| extern
| static
<C class modifier> ::= const | volatile
<C variable specification> ::=
<C numeric variable>
| <C character variable>
| <C derived variable>
<C numeric variable> ::=
( long | short | float | double )
<C host identifier> [ <C initial value> ]
[ ( <comma> <C host identifier> [ <C initial value> ] )... ]
<C initial value> ::=
<equals operator> <character representation>...
<C character variable> ::=
char [ CHARACTER SET
[ IS ] <character set specification> ]
<C host identifier>
<C array specification> [ <C initial value> ]
[ ( <comma> <C host identifier>
<C array specification>
[ <C initial value> ] )... ]
<C array specification> ::=
<left bracket> <length> <right bracket>
<C derived variable> ::=
<C VARCHAR variable>
| <C bit variable>
<C VARCHAR variable> ::=
VARCHAR [ CHARACTER SET [ IS ]
<character set specification> ]
<C host identifier>
<C array specification> [ <C initial value> ]
[ ( <comma> <C host identifier>
<C array specification>
[ <C initial value> ] )... ]
<C bit variable> ::=
BIT <C host identifier>
<C array specification> [ <C initial value> ]
[ ( <comma> <C host identifier>
<C array specification>
[ <C initial value> ] )... ]
<COBOL variable definition> ::=
(01|77) <COBOL host identifier> <COBOL type specification>
[ <character representation>... ] <period>
<COBOL type specification> ::=
<COBOL character type>
| <COBOL bit type>
| <COBOL numeric type>
| <COBOL integer type>
<COBOL character type> ::=
[ CHARACTER SET [ IS ]
<character set specification> ]
( PIC | PICTURE ) [ IS ] ( X [ <left paren> <length> <right paren> ] )...
<COBOL bit type> ::=
( PIC | PICTURE ) [ IS ]
( B [ <left paren> <length> <right paren> ] )...
<COBOL numeric type> ::=
( PIC | PICTURE ) [ IS ]
S <COBOL nines specification>
[ USAGE [ IS ] ] DISPLAY SIGN LEADING SEPARATE
<COBOL nines specification> ::=
<COBOL nines> [ V [ <COBOL nines> ] ]
| V <COBOL nines>
<COBOL nines> ::= ( 9 [ <left paren> <length> <right paren> ] )...
<COBOL integer type> ::=
<COBOL computational integer>
| <COBOL binary integer>
<COBOL computational integer> ::=
( PIC | PICTURE ) [ IS ] S<COBOL nines>
[ USAGE [ IS ] ] ( COMP | COMPUTATIONAL )
<COBOL binary integer> ::=
( PIC | PICTURE ) [ IS ] S<COBOL nines>
[ USAGE [ IS ] ] BINARY
<Fortran variable definition> ::=
<Fortran type specification>
<Fortran host identifier>
[ ( <comma> <Fortran host identifier> )... ]
<Fortran type specification> ::=
CHARACTER [ <asterisk> <length> ]
[ CHARACTER SET [ IS ]
<character set specification> ]
| BIT [ <asterisk> <length> ]
| INTEGER
| REAL
| DOUBLE PRECISION
<MUMPS variable definition> ::=
( <MUMPS numeric variable> | <MUMPS character variable> )
<semicolon>
<MUMPS numeric variable> ::=
<MUMPS type specification>
<MUMPS host identifier> [ ( <comma> <MUMPS host identifier> )... ]
<MUMPS type specification> ::=
INT
| DEC
[ <left paren> <precision> [ <comma> <scale> ] <right paren> ]
| REAL
<MUMPS character variable> ::=
VARCHAR <MUMPS host identifier> <MUMPS length specification>
[ ( <comma> <MUMPS host identifier> <MUMPS length specification> )... ]
<MUMPS length specification> ::=
<left paren> <length> <right paren>
<Pascal variable definition> ::=
<Pascal host identifier> [ ( <comma> <Pascal host identifier> )... ] <colon>
<Pascal type specification> <semicolon>
<Pascal type specification> ::=
PACKED ARRAY
<left bracket> 1 <double period> <length> <right bracket>
OF CHAR
[ CHARACTER SET [ IS ]
<character set specification> ]
| PACKED ARRAY
<left bracket> 1 <double period> <length> <right bracket>
OF BIT
| INTEGER
| REAL
| CHAR [ CHARACTER SET
[ IS ] <character set specification> ]
| BIT
<PL/I variable definition> ::=
(DCL | DECLARE)
( <PL/I host identifier>
| <left paren> <PL/I host identifier>
[ ( <comma> <PL/I host identifier> )... ] <right paren> )
<PL/I type specification>
[ <character representation>... ] <semicolon>
<PL/I type specification> ::=
( CHAR | CHARACTER ) [ VARYING ]
<left paren><length><right paren>
[ CHARACTER SET
[ IS ] <character set specification> ]
| BIT [ VARYING ] <left paren><length><right paren>
| <PL/I type fixed decimal> <left paren> <precision>
[ <comma> <scale> ] <right paren>
| <PL/I type fixed binary> [ <left paren> <precision> <right paren> ]
| <PL/I type float binary> <left paren> <precision> <right paren>
<PL/I type fixed decimal> ::=
( DEC | DECIMAL ) FIXED
| FIXED ( DEC | DECIMAL )
<PL/I type fixed binary> ::=
( BIN | BINARY ) FIXED
| FIXED ( BIN | BINARY )
<PL/I type float binary> ::=
( BIN | BINARY ) FLOAT
| FLOAT ( BIN | BINARY )
<embedded SQL end declare> ::=
<SQL prefix> END DECLARE SECTION
[ <SQL terminator> ]
<embedded SQL MUMPS declare> ::=
<SQL prefix>
BEGIN DECLARE SECTION
[ <embedded character set declaration> ]
[ <host variable definition>... ]
END DECLARE SECTION
<SQL terminator>
<embedded SQL statement> ::=
<SQL prefix>
<statement or declaration>
[ <SQL terminator> ]
<statement or declaration> ::=
<declare cursor>
| <dynamic declare cursor>
| <temporary table declaration>
| <embedded exception declaration>
| <SQL procedure statement>
<embedded exception declaration> ::=
WHENEVER <condition> <condition action>
<condition> ::=
SQLERROR | NOT FOUND
<condition action> ::=
CONTINUE | <go to>
<go to> ::=
( GOTO | GO TO ) <goto target>
<goto target> ::=
<host label identifier>
| <unsigned integer>
| <host PL/I label variable>
<host label identifier> ::= !!<EMPHASIS>(See the Syntax Rules.)
<host PL/I label variable> ::= !!<EMPHASIS>(See the Syntax Rules.)
<preparable statement> ::=
<preparable SQL data statement>
| <preparable SQL schema statement>
| <preparable SQL transaction statement>
| <preparable SQL session statement>
| <preparable implementation-defined statement>
<preparable SQL data statement> ::=
<delete statement: searched>
| <dynamic single row select statement>
| <insert statement>
| <dynamic select statement>
| <update statement: searched>
| <preparable dynamic delete statement: positioned>
| <preparable dynamic update statement: positioned>
<dynamic single row select statement> ::= <query specification>
<dynamic select statement> ::= <cursor specification>
<preparable dynamic delete statement: positioned> ::=
DELETE [ FROM <table name> ]
WHERE CURRENT OF <cursor name>
<preparable dynamic update statement: positioned> ::=
UPDATE [ <table name> ]
SET <set clause list>
WHERE CURRENT OF <cursor name>
<preparable SQL schema statement> ::=
<SQL schema statement>
<preparable SQL transaction statement> ::=
<SQL transaction statement>
<preparable SQL session statement> ::=
<SQL session statement>
<preparable implementation-defined statement> ::=
!! <EMPHASIS>(See the Syntax Rules.)
<direct SQL statement> ::=
<directly executable statement> <semicolon>
<directly executable statement> ::=
<direct SQL data statement>
| <SQL schema statement>
| <SQL transaction statement>
| <SQL connection statement>
| <SQL session statement>
| <direct implementation-defined statement>
<direct SQL data statement> ::=
<delete statement: searched>
| <direct select statement: multiple rows>
| <insert statement>
| <update statement: searched>
| <temporary table declaration>
<direct select statement: multiple rows> ::=
<query expression> [ <order by clause> ]
<direct implementation-defined statement> ::=
!!<EMPHASIS>(See the Syntax Rules)
<SQL object identifier> ::=
<SQL provenance> <SQL variant>
<SQL provenance> ::= <arc1> <arc2> <arc3>
<arc1> ::= iso | 1 | iso <left paren> 1 <right paren>
<arc2> ::= standard | 0 | standard <left paren> 0 <right paren>
<arc3> ::= 9075
<SQL variant> ::= <SQL edition> <SQL conformance>
<SQL edition> ::= <1987> | <1989> | <1992>
<1987> ::= 0 | edition1987 <left paren> 0 <right paren>
<1989> ::= <1989 base> <1989 package>
<1989 base> ::= 1 | edition1989 <left paren> 1 <right paren>
<1989 package> ::= <integrity no> | <integrity yes>
<integrity no> ::= 0 | IntegrityNo <left paren> 0 <right paren>
<integrity yes> ::= 1 | IntegrityYes <left paren> 1 <right paren>
<1992> ::= 2 | edition1992 <left paren> 2 <right paren>
<SQL conformance> ::= <low> | <intermediate> | <high>
<low> ::= 0 | Low <left paren> 0 <right paren>
<intermediate> ::= 1 | Intermediate <left paren> 1 <right paren>
<high> ::= 2 | High <left paren> 2 <right paren>
AF. Pararthma B - Odhgos Ekma8hshs SQL gia arxarioys
AF.1. Odhgos Ekma8hshs gia PostgreSQL
Mazi me th dianomh ths PostgreSQL dianeimetai odhgos ekma8hshs SQL.
Ta scripts toy odhgou ekma8hshs SQL briskontai ston katalogo
src/tutorial
AF.2. Deiktes Internet diey8unsewn
Oi arxarioi mporoun na broyn odhgo ekma8hshs SQL sto
� <
http://w3.one.net/~jhoffman/sqltut.htm>
Sxolia h ypodeijeis; Steilte mail sto
�
[email protected]
Ta parakatw sites proteinontai apo ton John Hoffman:
� Egxeiridio SQL
<
http://www.contrib.andrew.cmu.edu/~shadow/sql.html>
� Epikoinwnhste me thn SQL Pro
<
http://www.inquiry.com/techtips/thesqlpro/>
� Xrhsima Sites gia th sxesiakh bash dedomenwn SQL Pro
<
http://www.inquiry.com/techtips/thesqlpro/usefulsites.html>
� Kwdikas gia programmatistes
<
http://infoweb.magi.com/~steve/develop.html>
� DBMS Sites <
http://info.itu.ch/special/wwwfiles> Phgainete edw kai
deite to arxeio comp_db.html
� DB Ingredients <
http://www.compapp.dcu.ie/databases/f017.html>
� Web Authoring <
http://www.stars.com/Tutorial/CGI/>
� Computing Dictionary <
http://wfn-shop.princeton.edu/cgi-
bin/foldoc>
� DBMS Lab/Links <
http://www-ccs.cs.umass.edu/db.html>
� SQL FAQ
<
http://epoch.CS.Berkeley.EDU:8000/sequoia/dba/montage/FAQ>
Phgainete edw kai deite to arxeio SQL_TOC.html
� Baseis SQL <
http://chaos.mur.csu.edu.au/itc125/cgi/sqldb.html>
� RIT Selida gia Sxediasmo Basewn
<
http://www.it.rit.edu/~wjs/IT/199602/icsa720/icsa720postings.html>
� Database Jump Site <
http://www.pcslink.com/~ej/dbweb.html>
� Boh8hmata programmatismou sto Web
<
http://www.eng.uc.edu/~jtilley/tutorial.html>
� Phges gia Programmatistes
<
http://www.ndev.com/ndc2/support/resources.htp>
� Lista erwthsewn <
http://ashok.pair.com/sql.htm>
� Diafora IMAGE SQL
<
http://jazz.external.hp.com/training/sqltables/main.html>
� Internet Resource List <
http://www.eit.com/web/netservices.html>
AG. Appendix C - Odhgies gia grhgorh egkatastash Linux
An skopeuete na xrhsimopoihsete th PostgreSQL se Linux, kai xreiazeste
boh8eia kata thn egkatastash sto Linux, episkefteite toys deiktes poy
8a breite sto Appendix. Kaluptoyn ta parakatw 8emata -
� Xarakthristika toy Linux - Giati to Linux einai kalutero gia
ejyphrethth basewn dedomenwn se sugkrish me ta Windows 95/NT
� Odhgies gia 10lepth grhgorh egkatastash Linux
� Lista analogiwn Microsoft-Linux
� Grhgora bhmata gia na metaglwttisete ton pyrhna Linux
� Main Site is at <
http://members.spree.com/technology/aldev/>
� Mirror site <
http://aldev.8m.com>
� Mirror site <
http://aldev.webjump.com>
� Mirror site <
http://homepages.infoseek.com/~aldev1/index.html>
� Mirror site <
http://www3.bcity.com/aldev/>