COMPUTERWORLD
pod kapotou
DatabßzovΘ modely

Ka₧d², kdo vyrßbφ nebo pou₧φvß libovolnΘ poΦφtaΦovΘ programy, obvykle narazφ na tent²₧ problΘm: jak je n∞jak² objekt, nap°. pracovnφk Novßk, chorobopis, mapa apod. v programu reprezentovßn. ╪eknete si, ₧e jako data. To je z°ejm∞ pravda, je vÜak t°eba mφt po ruce nßvod, jak jsou ta data strukturovanß a jak je mßme p°esn∞ interpretovat.

SkuteΦnost m∙₧e b²t jeÜt∞ slo₧it∞jÜφ. Data se n∞jak tvß°φ pro u₧ivatele programu a n∞jak jinak pro vlastnφ program, kter² s nimi pracuje. U₧ivateli se mohou jevit jako dvourozm∞rnß tabulka A, ale n∞kde uvnit° informaΦnφho systΘmu jsou t°eba ulo₧ena pomocφ dvou tabulek B a C spolu s nßvodem, jak vytvo°it tabulku A. Nap°. °ßdek v tabulce A obsahuje data o pracovnφkovi jmΘnem Novßk, vΦetn∞ ·kolu, kter² °eÜφ, jakou v n∞m mß funkci, kdo ·kol vede apod. Ve skuteΦnosti vÜak m∙₧e jφt o dva °ßdky, p°iΦem₧ jeden je z B (popisuje Novßka) a druh² z C (popisuje ·kol, kter² Novßk °eÜφ)

Takto lze jφt v r∙zn²ch reprezentacφch a₧ n∞kam na magnetick² disk, kde bychom zjistili, ₧e °ßdky tabulek A a B jsou uspo°ßdßny jako zßznamy v sektorech na disku a ₧e k nim jeÜt∞ existujφ n∞jakß dalÜφ, pomocnß data, kterß urychlujφ p°φstup do A i B.

Podobn∞ lze jφt i od tabulek sm∞rem k objekt∙m, kterΘ reprezentujφ. Mezi skuteΦnΘho Novßka a °ßdek tabulky, kter² ho reprezentuje m∙₧eme vlo₧it abstrakci - typ entity PRACOVN═K a entitu Novßk. Ta se bude od skuteΦnΘho Novßka liÜit tφm, ₧e je charakterizovßna jenom n∞kolika vlastnostmi skuteΦnΘho Novßka, nap°. jmΘnem, rodn²m Φφslem, datem narozenφ apod. Hodnoty t∞chto vlastnostφ se reprezentujφ pomocφ dat.

VÜechny fßze uvedenΘ ·vahy m∞ly n∞co spoleΦnΘho. V₧dy se vytvß°el jist² model. T∞ch model∙ bylo hned n∞kolik, podle toho na jakΘ ·rovni abstrakce se Φlov∞k na skuteΦn² objekt (°ekn∞me Novßk) dφval.

V tuto chvφli si °eknete - aha, zmφn∞n² °ßdek tabulky je databßzov² model Novßka, stejn∞ jako je t°eba papφrov² BetlΘm papφrov²m modelem skuteΦnΘho BetlΘma nebo Pet°φnskß v∞₧ ocelov²m modelem skuteΦnΘ Eiffelovky. Bohu₧el, tak tomu nenφ. Terminologie databßzφ je zrovna v tΘto oblasti na hony vzdßlenß naÜemu chßpßnφ modelu. Databßzov² model toti₧ nenφ model (v b∞₧nΘm slova smyslu). Je to nßstroj urΦen² modelovßnφ. Nap°. relaΦnφ databßzov² model je aparßt umo₧≥ujφcφ popisovat a konstruovat relace. V²sledkem modelovßnφ, tj. pou₧itφ danΘho aparßtu, ovÜem zase nevznikne ₧ßdn² model, n²br₧ schΘma relaΦnφ databßze. Tedy PRACOVN═K(JM╔NO, RODN╔_╚═SLO,DATUM_N) m∙₧e b²t schΘmatem jednΘ relace z n∞jakΘho rozsßhlejÜφho schΘmatu relaΦnφ databßze.

Vlastnφ relace obsahujφcφ (krom∞ dalÜφch) Φtve°ici ·daj∙ o Novßkovi tvo°φ Φßst relaΦnφ databßze. Vztah jednΘ konkrΘtnφ relace k jejφmu schΘmatu je asi takov², jako vztah prom∞nnΘ a hodnoty, kterou obsahuje. Tedy schΘma relace PRACOVN═K je jakßsi relaΦnφ prom∞nnß danΘho typu.

Nedßvno se v jednom Φasopise zmi≥ovali, kdo mß tuto terminologii na sv∞domφ. UvedenΘ pojetφ databßzovΘho modelu pr² prvn∞ pou₧il slavn² databßzista C.J. Date v jednΘ ze sv²ch prvnφch knih.

JakΘ jsou databßzovΘ modely? Do nedßvna byly t°i: sφ¥ov², hierarchick² a relaΦnφ. Ty prvnφ dva u nßs u₧ moc neznßme. StruΦn∞ °eΦeno, pracovalo se zßznamy, kterΘ se spojovaly do grafov²ch struktur, lidov∞ °eΦeno - sφtφ. Nap°. jsou-li ODD╠LEN═, resp. PRACOVN═K jmΘna typ∙ zßznam∙ o odd∞lenφch, resp. pracovnφcφch, pak dvojice < ODD╠LEN═, PRACOVN═K> m∙₧e tvo°it hranu (grafu) ve schΘmatu sφ¥ovΘ databßze. Zßznam o odd∞lenφ TechnickΘ spolu se seznamem zßznam∙ pracovnφk∙, kte°φ v n∞m pracujφ m∙₧e tvo°it Φßst sφ¥ovΘ databßze.

Jak² je rozdφl mezi databßzov²m a datov²m modelem? V pou₧φvanΘ terminologii se mezi t∞mito pojmy p°φliÜ nerozliÜuje. M∙₧ete se setkat i s relaΦnφm datov²m modelem, p°iΦem₧ jde stßle o totΘ₧. Pojem ôdatov²ö je vÜak obecn∞jÜφ ne₧ databßzov². Jde-li o specißlnφ p°φpad datov²ch struktur, kter²mi databßze bezesporu jsou. Je vÜak vhodn∞jÜφ hovo°it o databßzov²ch modelech.

Od poΦßtku 90. let se hovo°φ o objektov²ch modelech. Jejich hlavnφm nßstrojem je pojem objektu. Nepou₧φvß se tu ani ôdatabßzov²ö ani ôdatov²ö. Snad proto, aby se data odliÜila od objekt∙, kterΘ majφ svou identitu, p°iΦem₧ nemusφ nΘst ₧ßdnß data. Hezk²m paradoxem je, ₧e o kousek nφ₧e, na ·rovni implementace, jsou i objekty vyjßd°eny pomocφ dat.

ObjektovΘ modely jsou charakteristickΘ jeÜt∞ jednou zvlßÜtnostφ. Nenφ toti₧ pouze jeden objektov² model. T∞ch je asi tolik, kolik existuje v²robc∙ systΘm∙ °φzenφ objektov²ch databßzφ. A to nemluvφm o teoreticφch, kte°φ si navrhli svΘ vlastnφ objektovΘ modely.

V tradiΦnφm sv∞t∞ databßzφ jsou naopak zmφn∞nΘ t°i databßzovΘ modely jedineΦnΘ. Ten sφ¥ov² byl navr₧en skupinou odbornφk∙ a konstituovßn ve zprßv∞ CODASYL z r. 1972, hierarchick² vznikl v²vojem v druhΘ polovin∞ 60. let. RelaΦnφ je v²myslem Dr. Codda, kter² jej publikoval v Φasopise CACM v r. 1971. Namφtnete, ₧e v relaΦnφch databßzφch se pou₧φvß pojem tabulka a ne relace. Ano, to je pravda, jde vÜak o rozdφly, kterΘ pot°ebujφ trochu hlubÜφ vysv∞tlenφ. Tak₧e o tom n∞kdy p°φÜt∞.

Pojetφ databßzovΘho modelu jako nßstroje lze pou₧φt i v dalÜφch oblastech informaΦnφch technologiφ. Zmφnili jsme se o typu entity a entit∞. Jde zase o jistΘ nßstroje modelovßnφ, znßmΘ jako konceptußlnφ modely. Tφm nejznßm∞jÜφm je E-R model, na kter² takΘ dojde v naÜem serißlu. V²sledkem modelovßnφ na tΘto ·rovni je konceptußlnφ schΘma. Abstraktnφ objekty (jako nap°. entita Novßk) tvo°φ informaΦnφ bßzi.

Jak databßzovΘ, tak konceptußlnφ modely jsou vlastn∞ jistΘ jazyky. Pou₧ijeme-li programovacφ jazyk, vznikne program, pou₧ijeme-li jazyk - databßzov² model, vznikne schΘma databßze. Vedle formßlnφch prost°edk∙, jak schΘma zapisovat (syntaxe), jsou vybaveny i sΘmantikou, kterß do jistΘ mφry vyjad°uje, co danΘ schΘma vlastn∞ znamenß.

P°iznejme, ₧e jde o prost°edky jednoduchΘ a z hlediska sΘmantiky dosti chudΘ. O Φem p°esn∞ n∞jakß databßze pojednßvß, to vÜe se nevyΦte pouze z jejφho schΘmatu, ale z dalÜφ dokumentace aplikaΦnφho systΘmu. Tak₧e pozor. Abyste mohli klßst po₧adavky na databßzi, je nutnΘ minimßln∞ znßt odpovφdajφcφ databßzovΘ schΘma. DalÜφ informace poskytne p°φsluÜnΘ konceptußlnφ schΘma. Zßvisφ ovÜem na slo₧itosti aplikace. U n∞kter²ch databßzφ (pojiÜ¥ovna, medicφna, ·Φetnictvφ apod.) musφm jeÜt∞ dokonale znßt oblast aplikace a vÜechna schΘmata mi pomohou jen ΦßsteΦn∞.

Na zßv∞r u₧ jen struΦn∞. Nejde jen o databßze. Celß informatika je samΘ modelovßnφ. Nejt∞₧Üφ je za°φdit, aby si u₧ivatel rozdφl mezi modelem a skuteΦnostφ skoro neuv∞domoval, co₧ se u₧ n∞kdy docela da°φ. Mo₧nß, ₧e to vÜak nenφ ani nutnΘ, ani ₧ßdoucφ.



<seznam dφl∙ serißlu>   <COMPUTERWORLD>