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 |