COMPUTERWORLD
Specializovan² t²denφk o v²poΦetnφ technice
o Internetu
(CW 33/97)

SQL server -- nejlepÜφ kolega WWW serveru

Jan Stoklasa

Aktußlnφ zprßva ze soudnφ sφn∞: Informix a Oracle jsou ve sporu. Jeho p°edm∞tem jsou znalosti t°inßcti in₧en²r∙, kte°φ p°eÜli od Informixu k Oraclu. Pracovali na propojenφ WWW a databßzφ, a Informix se obßvß, ₧e svΘ znalosti nabytΘ v jeho slu₧bßch pou₧ijφ ve prosp∞ch mocnΘho konkurenta. Ve h°e je technologie dynamickΘho WWW, obecn∞ pova₧ovanß za klφΦ ke komerΦnφmu vyu₧itφ Internetu i k budovßnφ fungujφcφho Intranetu.

V tomto Φlßnku se podφvßme pod kapotu dynamickΘho WWW. Prßv∞ tam toti₧ najdeme tu v∞c, kterß je v pozadφ sporu -- SQL server a jeho komunikaci s WWW serverem.

SQL server se starß o sprßvu a provoz databßze. Tato struΦnß v∞ta charakterizuje, o Φem SQL servery jsou -- o databßzφch. Ve struΦnΘm ·vodu jeÜt∞ m∙₧eme doplnit, ₧e nerozluΦn²m spoleΦnφkem SQL serveru je jazyk SQL, kter² m∙₧eme hodn∞ jednoduÜe oznaΦit jako programovacφ jazyk pro databßze.

Zp∙sob, kter²m se s SQL serverem pracuje, je standardnφ bez ohledu na to, jestli se jednß o SQL server od Oraclu, Informixu, Sybase nebo Microsoftu. V ka₧dΘm p°φpad∞ aplikace zformuluje dotaz nebo vydß p°φkaz pro manipulaci s databßzφ (v jazyku SQL) a tento dotaz nebo p°φkaz odeÜle SQL serveru. Zpßtky dostane odpovφdajφcφ data. Zßkladnφm ·kolem SQL serveru tedy je vykonßvßnφ program∙ v jazyku SQL a vracenφ jejich v²sledk∙ volajφcφ aplikaci.

Jazyk SQL je standardizovßn komisφ ANSI. Znamenß to, ₧e je to hodn∞ v²znamn² standard a proto ho SQL servery spl≥ujφ. Obvykle jsou mo₧nosti serveru nadmno₧inou standardu SQL, proto₧e v²robci rßdi p°idßvajφ svß rozÜφ°enφ.

Samotn² zp∙sob komunikace mezi aplikacφ a serverem nenφ p°edm∞tem specifikace SQL. Z pohledu jazyka SQL to nenφ podstatnΘ, proto₧e existujφ propracovanΘ postupy pro logovßnφ se na server a komunikaci mezi aplikacφ a serverem. PodstatnΘ je, ₧e p°i tΘto komunikaci putujφ jednφm sm∞rem programy v jazyce SQL a druh²m sm∞rem data.

Jazyk SQL

Komise ANSI a ISO na jazyku SQL stßle pracujφ. Cht∞jφ, aby se vyvφjel souΦasn∞ s po₧adavky doby. Poslednφ schvßlenß verze se jmenuje SQL-92 a je z roku 1992 (p°ekvapiv∞).

Odbornφci komise nespφ na vav°φnech, probφhajφ prßce na dalÜφ verzi SQL. Ta mß pracovnφ nßzev SQL3 a jejφ vlastnosti se majφ od p°edch∙dc∙ hodn∞ liÜit. PryΦ budou Φasy spo°ßdan²ch dat, databßze podle SQL3 majφ mφt schopnost skladovat abstraktnφ datovΘ typy, podporovat d∞diΦnost a polymorfismus. Cφlem komise je poskytnout normu SQL pro objektovΘ databßze. Ty dnes existujφ, ale chybφ jim jednotn² jazyk pro dotazovßnφ a manipulaci s databßzφ.

Ambici≤znφ cφl komise naznaΦuje, ₧e SQL3 bude hodn∞ komplexnφ a slo₧itß norma. Jß rad∞ji do takov²ch v²Üek databßzovΘ v∞dy zabφhat nebudu, proto₧e nejsem databßzov² specialista (obecn∞ prosφm databßzovΘ mistry o shovφvavost k celΘmu Φlßnku -- p°ipomφnky a opravy pat°φ na mou hlavu).

Budu se rad∞ji dr₧et star²ch dobr²ch relaΦnφch databßzφ. TakΘ dokß₧ou hodn∞, znßme dobrΘ postupy, jak s nimi pracovat. Proto jsou dneÜnφ aplikace postaveny p°edevÜφm na nich, dynamickΘ WWW strßnky nevyjφmaje.

Od mainframu k SQL serveru

Prßv∞ te∩ je Φas na malou historickou prochßzku. ZaΦneme v 60. let. Znßm tuhle legendßrnφ dobu jen z vyprßv∞nφ, ale kdy₧ trochu zapracuje fantazie, jako bych to vid∞l:

hudebnφ scΘn∞ vlßdnou Beatles, Doors, Beach Boys, podnikov²m informaΦnφm systΘm∙m zase proprietßrnφ databßzovΘ aplikace. B∞hajφ pouze na mainframu jednoho v²robce, kter² je zßrove≥ dodavatelem databßzovΘho stroje i vÜech (sic!) aplikacφ.

Kolik v tΘto dob∞ stojφ takovß databßze a aplikace? Jenom 'pakatel' -- databßze kolem 200 000 dolar∙, velkΘ aplikace jsou dra₧Üφ -- ka₧dß bratru 2 000 000 dolar∙ (!!!) (Zdroj: Michael Gorman.) Vysokou cenu aplikacφ zp∙sobuje hlavn∞ to, ₧e majitel databßze je ke svΘmu dodavateli pevn∞ p°ipoutßn. Aplikace dokß₧e vytvß°et jen v²robce databßzovΘho stroje, p°echod na jin² systΘm znamenß, ₧e stßvajφcφ aplikace se m∙₧ou zahodit.

╪eÜenφ p°ichßzφ skoro z nebe, jmenuje se otev°enΘ systΘmy a norma SQL. Nejprve komitΘt CODASYL a potom komise ANSI vytvo°ily normu jazyka pro manipulaci s databßzemi a dotazy do databßze -- SQL, neboli Structured Query Language.

To byla ₧ivß voda pro sv∞t databßzov²ch aplikacφ. Proprietßrnφ systΘmy byly vytlaΦeny na periferii (v podob∞ r∙zn²ch 'dBasφ' se jim na PC da°ilo docela dob°e), hlavnφ proud ovlßdla architektura klient-server na bßzi SQL server∙.

Od SQL serveru k WWW serveru

SouΦasnost zastihuje SQL servery ve stavu radostnΘho oΦekßvßnφ. Zßkladnφm principem Internetu a Intranetu je architektura klient-server, se kterou si SQL dob°e rozumφ. Propojenφ WWW a databßzφ je po₧adavkem dneÜka. KomerΦnφ produkty nejsou jenom prost² SQL server. Dost Φasto um∞jφ p°φmo zpracovßvat HTTP po₧adavky, tak₧e v²sledkem je kombinovan² WWW-SQL server.

Ukazuje se, ₧e Web je v²teΦnΘ rozhranφ pro komunikaci s databßzov²m serverem. SQL servery p°ed sebou majφ lßkav² kus sv∞ta -- brzy dobudou Internet, proto₧e ka₧d² WWW server bude v sob∞ skr²vat SQL server, kter² bude celou tu dynamiku provozn∞ zajiÜ¥ovat.

DynamickΘ WWW strßnky

WWW strßnky, kterΘ jsou stejnΘ p°i ka₧dΘ nßvÜt∞v∞, nejsou moc zajφmavΘ. LepÜφ jsou tzv. dynamickΘ strßnky, kterΘ sv∙j vzhled p°izp∙sobujφ osob∞ nßvÜt∞vnφka. Proto si musφ server o ka₧dΘm ΦlovφΦkovi, kter² navÜtφvφ server, pamatovat d∙le₧itΘ ·daje -- t°eba p°evlßdajφcφ tΘma strßnek, kterΘ Φetl. P°i dalÜφ nßvÜt∞v∞ se tvß° serveru m∙₧e zm∞nit tak, aby na nφ p°evlßdalo oblφbenΘ tΘma nßvÜt∞vnφka.

Sprßvn∞ tuÜφte, ₧e tu spoustu informacφ o u₧ivateli si musφ pamatovat SQL server -- co takΘ jinΘho. V∞tÜinou se na n∞j WWW server obracφ p°i ka₧dΘm generovßnφ strßnky pro nßvÜt∞vnφka.

Zßklad Intranetu

Celß technologie Intranetu slou₧φ jednΘ jedinΘ v∞ci -- zaruΦenφ pohodlnΘho p°φstupu k firemnφm SQL server∙m. SQL servery jsou duÜφ, srdcem i t∞lem ka₧dΘho Intranetu. Ostatnφ aplikace Intranetu (poÜta, sdφlenφ informacφ, pop°. videokonference) jsou ve srovnßnφ s d∙le₧itostφ databßzφ a₧ na druhΘm mφst∞. Proto je tak klφΦovß vazba mezi WWW strßnkami a databßzemi.

U₧ivatelsk²m rozhranφm k SQL serveru byly v 'Θ°e p°ed Intranetem' aplikace, psanΘ za pomoci specißlnφch rozhranφ (t°eba ODBC). DneÜnφ model vyu₧φvß jako prost°ednφka WWW a jako univerzßlnφho klienta WWW prohlφ₧eΦ.

Rozhranφ se m∞nφ, SQL z∙stßvß

Vn∞jÜφ vzhled databßzov²ch aplikacφ se m∞nφ, ale SQL servery dßl neochv∞jn∞ provßd∞jφ programy v jazyku SQL a vracejφ v²sledky. Jestli potom tyto v²sledky zpracuje p°φmo klient∙v program nebo WWW server, o to se moudr² server starat nemusφ. P°e₧il u₧ n∞kolik vln p°φstupov²ch technologiφ (terminßly, klientskΘ programy, WWW rozhranφ) a stßle dob°e slou₧φ. P°iÜel, fungoval a zvφt∞zil.

KomerΦnφ SQL servery

SQL servery t∞chto p°ednφch v²robc∙ jsou integrovßny s WWW °eÜenφm -- n∞kdy dokonce tak, ₧e nemajφ ve jmΘn∞ 'SQL server'.

-- Oracle7

╪eÜenφ Oracle pro Internet a Intranet se jmenuje Oracle Universal Server. Jeho SQL serverem je Oracle7. Existuje provoznφ i personßlnφ verze tohoto SQL serveru.

Na opaΦnΘm konci v²konnostnφ stupnice stojφ Rdb7, co₧ je high-end databßzov² server pro Digital Unix a VMS.

-- Microsoft SQL Server 6.5

Je souΦßstφ balφku BackOffice. ┌zce spolupracuje s Internet Information serverem. Podporuje replikaci (i na servery jinΘho typu, dokonce i na databßzovΘ servery bez SQL) a dynamickΘ zamykßnφ Φßstφ databßze. WWW p°φmo podporuje utilita Internet Assistant, kterß p°φmo z databßze generuje HTML.

-- Informix-OnLine Workgroup database

╪eÜenφ Informixu pro Intranet se jmenuje Informix-OnLine Workgroup Server a Workstation. SouΦßstφ serveru je databßzov² server s nßzvem z titulku. Podporuje replikaci, vzdßlenou administraci a uchovßvßnφ objekt∙ typu BLOB (velkΘ binßrnφ objekty) pro podporu multimedißlnφch dat.

IntranetokΘ °eÜenφ Informixu p°edpoklßdß spoluprßci SQL serveru s Netscape FastTrack WWW serverem.

-- Sybase SQL Server

Podporuje replikaci (dokonce i mezi servery, spojen²mi jen obΦas -- metodou store and forward), vzdßlenou administraci.

Profesionßlnφ verze serveru p°φmo podporuje WWW, Φemu₧ Sybase °φkß NetImpact Dynamo. Jednß se o vlo₧enφ SQL p°φkaz∙ do textu WWW strßnky ve form∞ jazyka DynaScript (ten je podobn² JavaScriptu).

Databßzovß rozhranφ ODBC, JDBC

Aplikace Windows mohou pro p°φstup k databßzi pou₧φt ODBC (Open Database Connectivity) od Microsoftu. Je to sada knihoven s definovan²m API a soubor ovladaΦ∙ pro r∙znΘ SQL servery i pro lokßlnφ formßty dat. Aplikace volß jedno rozhranφ, ovladaΦe se postarajφ o p°evedenφ volßnφ na odpovφdajφcφ akci.

JDBC (Java Database Connectivity) je analogiφ ODBC pro Javu. V prost°edφ MS Windows by m∞lo pracovat nad ODBC nebo prost°ednictvφm vlastnφch ovladaΦ∙ (stejn∞ tak na jin²ch platformßch).


| <<< | CW o Internetu | COMPUTERWORLD | IDG CZ homepage |