Specializovan² t²denφk o v²poΦetnφ technice o Internetu (CW 33/97) SQL server -- nejlepÜφ kolega WWW serveruJan 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 | |