CachΘ Studio 2

Daniel KutßΦ, InterSystems CZ, 2002

-- p°edchozφ --

SQL

V minulΘm dφle naÜeho serißlu jsme popsali unifikovanou architekturu dat nßstroje CachΘ.

V tomto dφle se budeme podrobn∞ji v∞novat implementacφ SQL v prost°edφ CachΘ.

SQL je v CachΘ implementovßno jako souΦßst UnifikovanΘ architektury databßze. Sklßdß se ze dvou Φßstφ:

  • SQL Procesor a optimalizßtor û tvo°φ jej sada program∙, je₧ majφ za ·kol analyzovat SQL dotaz a najφt nejlepÜφ strategii pro vytvo°enφ cφlovΘho k≤du.
  • CachΘ SQL Server û toto je sada proces∙, je₧ obstarßvajφ veÜkerou komunikaci s CachΘ ODBC a JDBC ovladaΦi. Zßrove≥ obhospoda°ujφ seznam Φasto pou₧φvan²ch dotaz∙ s cφlem docφlit maximßlnφ rychlosti odezvy. Dotazy, je₧ jsou naΦteny v cache, nenφ nutno znovu analyzovat a kompilovat, provßd∞jφ se bezprost°edn∞.

Implementace SQL

CachΘ SQL obsahuje plnou sadu standardnφch relaΦnφch funkcφ:

  • Mo₧nost definovat tabulky a pohledy pomocφ DDL jazyka
  • Mo₧nost provßd∞t dotazy nad tabulkami a pohledy pomocφ DML
  • Podpora transakΦnφho zpracovßnφ, vΦetn∞ p°φkaz∙ INSERT, UPDATE a DELETE.
  • Mo₧nost definovat a pou₧φvat indexy pro rychlejÜφ provßd∞nφ dotaz∙
  • Podpora mnoha datov²ch typ∙ vΦetn∞ mo₧nosti pou₧φvßnφ vlastnφch datov²ch typ∙
  • Mo₧nost definovßnφ u₧ivatel∙ a rolφ vΦetn∞ p°i°azenφ prßv
  • Mo₧nost definovat externφ klφΦe a jinß integritnφ omezenφ
  • Podpora INSERT, UPDATE a DELETE triger∙
  • Mo₧nost definovßnφ a provßd∞nφ ulo₧en²ch procedur
  • Mo₧nost vracenφ dat v r∙zn²ch formßtech v zßvislosti na typu aplikace
  • Podpora bitmapov²ch index∙
  • Podpora u₧ivatelem definovan²ch funkcφ, atd...

SQL-92 Kompatibilita

CachΘ implementuje pln∞ zßkladnφ ·rove≥ standardu SQL-92 s n∞kolika mßlo v²jimkami.

RozÜφ°enφ

CachΘ SQL p°inßÜφ n∞kolik zajφmav²ch rozÜφ°enφ, je₧ vypl²vajφ z faktu, ₧e CachΘ je postrelaΦnφ databßzφ a umo₧≥uje jak objektov², tak relaΦnφ p°φstup ke stejn²m dat∙m.

  • Podpora u₧ivatelsky definovan²ch datov²ch typ∙
  • Podpora objektovΘ syntaxe
  • Podpora d∞diΦnosti a sub-classingu
  • Mo₧nost definovat strukturu ulo₧enφ dat za ·Φelem maximalizace v²konnosti.

Nßsledujφcφ k≤d ukazuje jak²m zp∙sobem je vyu₧ita objektovß syntaxe rozÜi°ujφcφ SQL (za ·Φelem demonstrace jsme rozÜφ°ili definici t°φdy Osoba o vlastnost Partner jako₧to referenci na p°φpadnΘho partnera):

Select Jmeno, Partner->Jmeno from SQLUser.Osoba where ID=1

Tento k≤d je v²znamov∞ toto₧n² se standardnφm (mΘn∞ p°ehledn²m) k≤dem

Select A.Jmeno,B.Jmeno from Osoba as A,Osoba as B where A.ID=1 and A.Partner=B.ID

Univerzßlnost

JDBC

CachΘ JDBC driver je kompatibilnφ na ·rovni 4 (Φistß Java) a mezi jeho hlavnφ rysy pat°φ:

  • Vysok² v²kon
  • K≤d pouze v Jav∞
  • Podpora UNICODE

ODBC

CachΘ ODBC je nativnφ driver. Nenφ zalo₧en na ₧ßdnΘ proprietßrnφ mezivrstv∞. K zßkladnφm rys∙m ODBC driveru pat°φ mj.:

  • Vysok² v²kon
  • P°enositelnost
  • Podpora UNICODE

Vno°enΘ SQL

P°i tvorb∞ programovΘho k≤du je mo₧no s v²hodou pou₧φt vlo₧enΘho SQL dotazu k vrßcenφ hodnoty pou₧φvanΘ v dalÜφ sekci programu. Pou₧ijeme-li tabulku z minulΘho dφlu, m∙₧eme nap°φklad napsat takov²to k≤d:

Obr. 1

Za tφmto ·Φelem jsme pon∞kud rozÜφ°ili definici t°φdy User.Osoba a to tak, ₧e jsme k vlastnosti Vek p°idali k≤d pro v²poΦet v∞ku p°i SQL p°φstupu. V CachΘ je toti₧ k≤d pro objektov² a SQL p°φstup odd∞len, proto musφme v p°φpad∞ vypoΦφtan²ch vlastnostφ k≤d pro v²poΦet napsat dvakrßt, poprvΘ jako metodu <jmΘnovlastnosti>Get pro objektov² p°φstup, podruhΘ jako SQLComputedCode pro SQL p°φstup.

DynamickΘ SQL

DalÜφ mo₧nostφ pou₧itφ SQL v k≤du je volßnφ t°φdy %Library.ResultSet. Tφmto zp∙sobem je mo₧no definovat SQL dotazy za b∞hu programu.

Ob∞ tyto metody majφ svß pro a proti, vlo₧enΘ SQL je o n∞co mßlo efektivn∞jÜφ, jeliko₧ je souΦßstφ k≤du procedury; naproti tomu dynamickΘ SQL vytvß°φ sv∙j vlastnφ k≤d a jsou udr₧ovßny v cache.

Jinou odliÜnostφ je nap°. syntaxe pro p°edßvßnφ parametr∙.

Konfigurace SQL

SystΘmovΘ parametry

K nastavenφ prost°edφ CachΘ SQL serveru slou₧φ mnoho r∙zn²ch parametr∙. Hodnoty t∞chto parametr∙ je mo₧no definovat bu∩ pomocφ CachΘ Configuration Manageru, v sekci Advanced->SQL, nebo û viz Obr. 2.

Obr. 2

Tyto parametry je tΘ₧ mo₧no upravovat za b∞hu programu pomocφ API t°φdy %SYSTEM.SQL

SQL Manager

SQL Manager je zßkladnφ nßstroj pro prßci s CachΘ SQL.

Obr. 3

Hlavnφmi oblastmi pou₧itφ SQL manageru jsou

  • SQL dotazy a p°φkazy
  • Sprßva systΘmu - tabulky, pohledy, u₧ivatelΘ, role, p°φstupovß prßva
  • Pr∙vodci pro propojovßnφ vzdßlen²ch tabulek, tj. tabulek definovan²ch v relaΦnφch databßzφch t°etφch stran.
  • Pr∙vodci pro export/import dat.

SQL

Pomocφ standardnφch p°φkaz∙ SQL (DDL,DML) lze tvo°it/ruÜit tabulky, pohledy atd. a dotazovat se na data.

Prßce se systΘmem

Nßsledujφcφ obrßzky ukazujφ definici u₧ivatele pomocφ SQL Manageru

Obr. 4

a definici prßv k tabulkßm:

Obr. 5

Pr∙vodci

Pro usnadn∞nφ n∞kter²ch slo₧it²ch operacφ slou₧φ pr∙vodci, kte°φ u₧ivatele krok za krokem navigujφ v procesu. Jednφm z pr∙vodc∙ je nap°. pr∙vodce exportem dat. V n∞kolika krocφch u₧ivatel zvolφ tabulku, z nφ₧ se data majφ exportovat a formßt cφlovΘho souboru.

Jin²m pr∙vodcem je pr∙vodce vytvo°enφm p°ipojenΘ tabulky z jinΘ relaΦnφ databßze. Tento pr∙vodce bude podrobn∞ji popsßn v sekci SQL Brßna.

ODBC

Konfigurace datovΘho zdroje

Pro p°φstup k dat∙m v CachΘ prost°ednictvφm ODBC rozhranφ je k dispozici driver. Definice parametr∙ ODBC je jednoduchß a ukazuje ji nßsledujφcφ obrßzek. V zßsad∞ je nutno jen specifikovat IP adresu serveru, port, na kterΘm CachΘ SQL server poslouchß a pracovnφ oblast, do kterΘ se mß ODBC driver napojit (namespace).

Obr. 6

SQL Brßna

UrΦit∞ se mnoho z vßs dostalo do situace, kdy jste pot°ebovali p°φstup z vaÜφ aplikace k dat∙m, kterß byla ulo₧ena v jinΘ aplikaci (databßzi). Mo₧n²ch zp∙sob∙ °eÜenφ tΘto situace je mnoho, od pou₧itφ soubor∙ k p°enosu dat p°es r∙znΘ jedno·ΦelovΘ progrßmky zalo₧enΘ na ODBC, XML aj. a₧ po komplexnφ aplikace typu ômessage hubö. VÜechna tato °eÜenφ majφ r∙znΘ nev²hody, bu∩ jsou p°φliÜ drahß, nebo strßvφte mnoho Φasu jejich programovßnφm.

Jako vÜe v ₧ivot∞, nic nenφ zadarmo. I zde je za pohodlφ nutno platit. NicmΘn∞ cena v podob∞ pon∞kud ni₧Üφ v²konnosti k p°φstupu ke vzdßlen²m dat∙m je cenou velice nφzkou.

Koneckonc∙, v₧dy mßte mo₧nost data z relaΦnφ databßze p°enΘst do CachΘ.

Konfigurace brßny

Nßsledujφcφ obrßzky ukazujφ zp∙sob konfigurace SQL brßny v CachΘ. Konfigurace a p°ipojenφ sestßvß ze 2 dφlΦφch krok∙:

  • Definice ODBC spojenφ v konfiguraΦnφm mana₧eru
  • Vytvo°enφ definice p°ipojenΘ tabulky (a tedy t°φdy) pomocφ pr∙vodce v SQL Mana₧eru

Obr. 7 Definice SQL brßny

Obr. 8 Pr∙vodce p°ipojenφm tabulky

Krok 1

Krok 2

Krok 3

Po p°ipojenφ tabulky je mo₧no s nφ pracovat jako s t°φdou v CachΘ a pou₧φvat krom∞ SQL, tΘ₧ CachΘ ObjectScript nebo CachΘ Basic k objektovΘmu p°φstupu k dat∙m ulo₧en²m v tΘto tabulce.

Obr. 9

P°φÜt∞ si povφme o prßci s XML a webov²mi slu₧bami.

-- pokraΦovßnφ --