Serißl CachΘ Studio vßm v p°φÜtφch m∞sφcφch bude
nabφzet postupn² v²klad prßce se systΘmem CachΘ vΦ. praktick²ch p°φklad∙.
JednotlivΘ dφly budou vychßzet v p°φÜtφch m∞sφcφch na ka₧dΘm Chip CD.
V ucelen²ch tΘmatech jednotliv²ch dφl∙ se jejich
autor - ing.
Daniel KutßΦ, sales engineer InterSystems B.V. - v∞nuje mo₧nostem
univerzßlnφho aplikaΦnφho a databßzovΘho serveru CachΘ vΦ. poslednφch novinek.
Objas≥uje, v Φem jsou hlavnφ v²hody CachΘ - jako je nap°. rychlost
a mohutnost databßzovΘho stroje, rychlost v²voje, rozÜi°itelnost aplikacφ,
snadnß kooperace s r∙zn²mi technologiemi a pru₧nß reakce na poslednφ
technologickΘ trendy.
Serißl CachΘ Studio je vhodn²m dopl≥kem k ostatnφm
studijnφm nßstroj∙m, kterΘ spoleΦnost InterSystems B.V. nabφzφ, nap°. dokumenty
v sekci webov²ch strßnek Technologie
CachΘ nebo jednodennφ trΘnink CachΘ EntrΘe, kter²
firma po°ßdß ka₧d² m∞sφc. V₧dy m∙₧ete svΘ informace doplnit na americk²ch
strßnkßch http://www.intersystems.com/
nebo nßs p°φmo kontaktovat zde.
P°edstavujeme vßm prvnφ dφl vΦetn∞ zdrojov²ch
k≤d∙. Pro praktickΘ p°φklady budete pot°ebovat
download verze CachΘ 5,
Beta 3 - ZDARMA.
Pod ikonami jsou ke ka₧dΘmu dφlu p°ipraveny zdrojovΘ
k≤dy, kterΘ vhodn∞ ilustrujφ p°φklady z textu.
V∞°φme, ₧e se budete ke CachΘ Studiu se zßjmem
vracet.
CachΘ Studio 1
⌐ Daniel KutßΦ, InterSystems CZ, 2002 ┌vodem
Cφlem tohoto serißlu je seznßmit Φtenß°e a
pota₧mo softvarovΘ v²vojß°e se zajφmavou databßzovou technologiφ firmy
InterSystems. Firma byla zalo₧ena v roce 1978, co₧ je shodou
okolnostφ tΘ₧ rok zalo₧enφ konkurenΦnφ firmy Oracle. Nosn²m produktem firmy
v poslednφch 5 letech je databßzov² nßstroj zvan² CachΘ. CachΘ je velmi vysp∞l² nßstroj pro tvorbu
komplexnφch aplikacφ zalo₧en²ch na prßci s persistentnφmi (trvale
dostupn²mi) daty. Na rozdφl od klasick²ch relaΦnφch databßzφ i Φist∞
objektov²ch databßzφ je CachΘ dφky svΘ architektu°e ulo₧enφ dat schopna
pracovat s daty jak z pohledu objektovΘho tak relaΦnφho. Kombinacφ t∞chto dvou zßkladnφch p°φstup∙ CachΘ
dßvß vznik samostatnΘ kategorii databßzφ, a to databßzφ postrelaΦnφch. Tedy
takov²ch, kterΘ umφ pracovat s daty pomocφ jak SQL jazyka tak pomocφ
objektovΘ syntaxe. Pro CachΘ je velmi p°φznaΦnΘ, ₧e na rozdφl od
nap°. objektov∞-relaΦnφch databßzφ nedochßzφ ke ztrßt∞ v²konu p°i p°φstupu
k dat∙m pomocφ objektovΘ nadstavby nebo¥ CachΘ nic takovΘho nemß. Mß jen
2 stejn∞ v²konnΘ projekce dat. Unifikovanß architektura databßze Zßkladem modelovßnφ komponent aplikacφ jsou
objekty. Objekty jsou organizovßny do t°φd ve kter²ch jsou popsßny vlastnosti
(data) a metody (chovßnφ) objekt∙. Definice t°φd jsou ulo₧eny spolu s ostatnφmi daty
v jednotnΘm ulo₧iÜti zvanΘm CachΘ Class Dictionary (slovnφk t°φd). Tento
slovnφk t°φd je sßm o sob∞ databßzφ a ostatnφ objekty k n∞mu mohou
objektov∞ p°istupovat. V okam₧iku zkompilovßnφ definice t°φdy dojde
k vytvo°enφ dvou r∙zn²ch, navzßjem synchronizovan²ch sad k≤du, kterΘ
zajistφ optimßlnφ p°φstup k instancφm objekt∙ t°φdy bu∩ pomocφ
objektovΘho nebo relaΦnφho p°φstupu. Obr. 1 Definice t°φd je mo₧no v CachΘ vytvo°it n∞kolika
r∙zn²mi zp∙soby: ╖
öruΦn∞ö pomocφ CachΘ Studia
P°φstup k definici ulo₧enφ dat
Objektov² model pou₧φvan² CachΘ je
v porovnßnφ s objektov²mi modely jin²ch programovacφch jazyk∙
rozÜφ°en o prvky z relaΦnφho prost°edφ. Lze tedy nap°φklad definovat
indexy, omezenφ (constrains) a strukturu ulo₧enφ dat. Definice fyzickΘ stuktury ulo₧enφ dat objekt∙ je
nezßvislΘ na popisu t°φdy. Vyvojß°i majφ mo₧nost vybrat si p°ednastavenou
strukturu pou₧φvanou kompilßtorem t°φd, nebo zvolit vlastnφ strukturu a ruΦn∞
ji nadefinovat s ohledem na maximßlnφ v²kon p°i dotazech nebo
transakcφch apod. Objekty
Definovßnφ t°φdy CachΘ disponuje pln∞ vyvinutou objektovou
databßzφ pro prßci v prost°edφch nßroΦn²ch na v²poΦetnφ v²kon
a mno₧stvφ zpracovan²ch transakcφ. Objektov² model CachΘ zahrnuje mj: T°φdy: to
jsou zßkladnφ kameny objektovΘho programovßnφ. CachΘ umo₧nuje definovat t°φdy
uchovßvajφcφ aplikaΦnφ data a vykonßvajφcφ aplikaΦnφ logiku. Vlastnosti: t∞mito
jsou popisovßna data uklßdanß a zpracovßvanß t°φdami. Metody:
popisujφ chovßnφ objekt∙ a vzßjemnou interakci. Relace: popisujφ
vztahy mezi jednotliv²mi t°φdami v aplikaci. D∞diΦnost: t°φdy
definovanΘ v CachΘ mohou b²t odvozeny od jin²ch t°φd a p°ejφmat jejich
vlastnosti a metody a dalÜφ (nap°. parametry) R∙znorodost (polymorfismus): t°φdy
mohou modifikovat zd∞d∞nΘ vlastnosti a metody. ╪et∞zenφ referencφ: CachΘ automaticky p°i otev°enφ instance
t°φdy otevφrß instance vÜech t°φd kterΘ jsou ve vztahy k otev°enΘ
instanci (reference/relace) SQL
Vztah objekt∙ a relaΦnφch tabulek Jak ji₧ bylo uvedeno d°φve, p°i kompilaci
definice t°φdy se automaticky vytvß°φ dv∞ sady k≤du. Prvnφ z nich je pro
pot°eby objektovΘho p°φstupu (jak jinak, ₧e) a druhß sada rutin definuje
p°φstup k vlastnostem t°φdy jako ke sloupc∙m v tabulce. Jednφm z projev∙ nezßvislosti objektovΘ a
relaΦnφ projekce datovΘho modelu je i mo₧nost p°id∞lit t°φd∞ alternativnφ
nßzev jako₧to nßzev tabulky. TotΘ₧ platφ i pro vlastnosti t°φdy. D∙vod je
nasnad∞. SQL obsahuje klφΦovß slova, kterß nemohou b²t pou₧ita jako nßzvy
tabulek nebo sloupc∙, zatφmco sv∞t objekt∙ je daleko svobodn∞jÜφ. Jen pro
ilustraci, slovo USER je klφΦov²m slovem SQL a tedy jej nelze v nßzvu
tabulky Φi sloupce pou₧φt, zatφmco v objektovΘm datovΘm modelu je
pom∞rn∞ Φasto pou₧ito pro nßzev vlastnosti Φi t°φdy popisujφcφ nap°.
u₧ivatele aplikace. Ka₧dß vlastnost t°φdy kterß mß jednu hodnotu je
automaticky transformovßna na sloupec relaΦnφ tabulky. Vlastnost typu pole,
kterΘ nab²vß libovolnΘho poΦtu hodnot, je transformovßna na samostatnou
tabulku obsahujφcφ odkaz na p∙vodnφ tabulku. Obr. 2. stejn² datov² model ale v relaΦnφ projekci: Obr. 3 Z uveden²ch obrßzk∙ je z°ejmΘ, ₧e mezi
objektovou a relaΦnφ projekcφ tΘho₧ datovΘho modelu mohou b²t znaΦnΘ
rozdφly. Obr. 4 Na tomto obrßzku je ukßzßno fyzickΘ ulo₧iÜt∞ dat.
FyzickΘ ulo₧iÜt∞ dat se v CachΘ naz²vß globßl.
Jednß se o vφcerozm∞rnΘ °φdkΘ pole. Zatφmco k zobrazenφ dat
v klasick²ch 2-rozm∞rn²ch polφch je nejvhodn∞jÜφ pou₧φt tabulkov²
pohled, k zobrazenφ vφcerozm∞rn²ch datov²ch struktur je vhodn² pohled
stromov²; tφmto zp∙sobem jsou prezentovßna data na p°edchozφm obrßzku. Vlevo
od znamΘnka ô=ö jsou vid∞t jednotlivΘ ôdimenzeö, vpravo pak data p°φsluÜnß
instanci objektu v danΘ dimenzi . Pole p°ßtel je ulo₧eno o ·rove≥ nφ₧e ne₧
detaily osoby. Na druhΘ stran∞, detaily adresy jsou ulo₧eny v rßmci
datov²ch polo₧ek osoby ale v samostatnΘm bloku ($lb). P°i kompilaci nßvrhu t°φdy CachΘ sama vytvo°φ
k≤d, kter² zajistφ p°φstup k fyzickΘ datovΘ vrstv∞, programßtor se v∙bec
o tyto vrstvu nemusφ zajφmat. NicmΘn∞, a tφm se CachΘ v²razn∞ liÜφ od ostatnφch
databßzov²ch nßstroj∙, v²vojß°i mohou sami definovat zp∙sob ulo₧enφ dat ve
fyzickΘ vrstv∞. Dφky tΘto otev°enosti CachΘ je mo₧no provßd∞t optimalizaci /
modifikaci ulo₧enφ v p°φpadech kdy p∙vodnφ zvolen² zp∙sob uklßdßnφ dat
nenφ pro nßroΦnost aplikace optimßlnφ. Je to velmi z°φdka, ale stßvß se to.
NicmΘn∞ s pot°ebou öruΦn∞ö optimalizovat se v²vojß°i setkajφ jen
u opravdu rozsßhl²ch databßzφ (GB) provßd∞jφcφch statisφce a vφce
transakcφ denn∞. Nßvrh datovΘho modelu pomocφ CachΘ Studia K nßvrhu slo₧it²ch datov²ch model∙ je vhodnΘ
pou₧φvat n∞kter² z profesionßlnφch CASE nßstroj∙, nap°φklad firmy
Rational Rose, ze kterΘho je mo₧no model importovat p°φmo do CachΘ. U jednoduÜÜφch datov²ch model∙ je mo₧no zaΦφt
definici t°φdy p°φmo v CachΘ Studiu. Stejn∞ tak implementace k≤du metod
t°φd vytvo°en²ch v CASE nßstrojφch se provßdφ v tomto studiu. P°i nßvrhu definice t°φdy mß v²vojß° mo₧nost
pou₧φt pr∙vodce pro jednotlivΘ dφlΦφ ·koly nebo m∙₧e psßt definici p°φmo pomocφ
jazyka CDL (Class Definition Language) Nßsledujφcφ text obsahuje definic nßvrhu t°φdy
User.Osoba. Obr. 5
T∞la metod mohou b²t napsßna pomocφ CachΘ
ObjectScriptu nebo CachΘBasicu, co₧ jsou skriptovacφ jazyky pro prßci
s daty a pro provßd∞nφ aplikaΦnφ logiky. Skriptovacφm jazyk∙m CachΘ bude
v∞novßn samostatn² dφl serißlu. Detaily implementace objekt∙
Typy t°φd Objektovß technologie implementovanß systΘmem
CachΘ zahrnuje nßsledujφcφ typy t°φd: ╖
Abstraktnφ t°φdy
Nynφ k popisu jednotliv²ch typ∙ t°φd: Abstraktnφ t°φdy slou₧φ k popisu obecn²ch
t°φd, od nich₧ se v rßmci aplikace odvozujφ t°φdy p°edstavujφcφ
konkrΘtnφ modelovanΘ objekty. Abstraktnφm t°φdßm nelze vytvß°et instance
objekt∙. RegistrovanΘ t°φdy implementujφ
plnohodnotnΘ objekty ve smlyslu OOP. Vzhledem k tomu, ₧e nepodporujφ
persistenci, vyu₧φvajφ se zpravidla pro tvorbu k≤du aplikaΦnφ logiky. Persistentnφ t°φdy slou₧φ k popisu dat,
kterß jsou trvale k dispozici, tedy dat uklßdan²ch na disk nebo jinΘ
zßznamovΘ mΘdium. Ka₧dß persistentnφ t°φda je odvozena od t°φdy registrovanΘ,
p°i kompilaci vytvß°φ k≤d kter² zajiÜ¥uje komunikaci mezi aplikaΦnφ vrstvou
(objekt) a fyzickou vrstvou (globßly). P°φkladem persistentnφ t°φdy je t°φda Osoba. Vno°enΘ t°φdy jsou podobnΘ t°φdam persistentnφm
ale na rozdφl od nich nemajφ vlastnφ ulo₧iÜt∞ dat. Data obsa₧enß ve vno°en²ch
t°φdßch jsou v₧dy ulo₧ena spolu s daty persistentnφ t°φdy je₧ na
vno°enou t°φdu odkazuje. P°φkladem vno°enΘ t°φdy je Adresa. OdvozenΘ t°φdy jsou obecn∞ t°φdy odvozenΘ od
jednΘ nebo vφce u₧ivatelsk²ch t°φd (D∞diΦnost). OdvozenΘ t°φdy obecn∞
mohou modifikovat vlastnosti a metody sv²ch nadt°φd (Polymorfismus). DatovΘ typy jsou t°φdy kterΘ slou₧φ jako popis
dat. DatovΘ typy mohou b²t libovoln∞ slo₧itΘ. ┌lohou datov²ch typ∙ je mj.
zajistit sprßvnou konverzi dat mezi zobrazovanou (externφ) podobou a jejich
ulo₧enou (vnit°nφ) podobou, dßle zajistit validaci vstupnφch hodnot aj. ZvlßÜtnφ kategoriφ t°φd jsou CSP strßnky, co₧
jsou t°φdy slou₧φcφ pro tvorbu dynamick²ch webov²ch aplikacφ a Web Services
je₧ implementujφ webovΘ slu₧by. Vlastnosti, metody, vno°enΘ dotazy Vlastnosti t°φd mohou b²t: ╖
Datov² typ
Vlastnosti mohou b²t privßtnφ, vy₧adujφcφ
neprßzdnou hodnotu, indexovanΘ, vy₧adujφcφ unikßtnφ hodnotu, transientnφ,
vypoΦφtanΘ, vφcerozm∞rnΘ. Vlastnost m∙₧e bßt oznaΦena jako finßlnφ, takovou
vlastnost nelze v odvozen²ch t°φdßch modifikovat. Metody mohou b²t metodami instance nebo metodami
t°φd, (pak pro jejich volßnφ nenφ nutno otevφrat instanci t°φdy). Je-li
metoda metodou t°φdy m∙₧e b²t zßrove≥ oznaΦena jako ulo₧enß procedura SQL.
Metody takΘ mohou b²t, podobn∞ jako vlastnosti, privßtnφ a finßlnφ. T°φdy mohou definovat tΘ₧ vlo₧enΘ dotazy. Vlo₧enΘ
dotazy mohou b²t definovßny bu∩ pomocφ jazyka SQL nebo pomocφ CachΘ
ObjectScriptu. V²hodou vlo₧en²ch procedur je to, ₧e jsou zkomilovßny spolu s
definicφ t°φdy a tφm se Üet°φ Φas p°i b∞hu programu. Vlo₧enΘ dotazy dovolujφ
zadßvßnφ parametr∙. Pomocφ parametr∙ t°φd a vlastnostφ lze
modifikovat nap°φklad zp∙sob validace hodnot p°i uklßdßnφ t°φdy na disk. |