Uložení dat v NetInfu, aneb stromy ve stromech - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Seriály

Více seriálů



Software

Uložení dat v NetInfu, aneb stromy ve stromech

macosearly

16. října 2001, 00.00 | Před týdnem jsme si ukázali základy struktury síťové databáze NetInfo: je složena z domén, každá doména může ležet na jiném počítači, a všechny domény tvoří stromovou strukturu. "NetInfo databáze" pak je právě tento strom domén.

Před týdnem jsme si ukázali základy struktury síťové databáze NetInfo: je složena z domén, každá doména může ležet na jiném počítači, a všechny domény tvoří stromovou strukturu. "NetInfo databáze" pak je právě tento strom domén.

Dnes se podíváme na to, jak jsou v databázi uložena konkrétní data.

Datové typy

Databáze NetInfo nepracuje s komplikovanými typy; namísto toho ukládá prostě textové řetězce (jejichž prostřednictvím lze snadno kódovat cokoli, třeba číslo nebo IP adresu).

Tyto textové hodnoty jsou v NetInfu vždy identifikovány (také textovým) klíčem — jde tedy de facto o slovník, obsahující dvojice <klíč, hodnoty>.

Pro větší flexibilitu umožňuje NetInfo ukládat k jednomu klíči libovolné množství hodnot ("hodnoty" z minulého odstavce tedy jsou polem, obsahujícím libovolně mnoho prvků). Dobrým příkladem může být třeba klíč "opts", který obsahuje všechny přepínače pro nastavení sdíleného disku. Někdy může mít smysl ukládat do NetInfa i klíče, které nemají žádnou hodnotu — aplikace mohou takový klíč interpretovat jako booleovský přepínač (existuje / neexistuje).

Adresářová struktura

Kdyby doména obsahovala jen výše uvedené dvojice <klíč, hodnoty>, museli bychom používat dost komplikovaná jména klíčů, abychom rozlišili, k čemu daný klíč patří: např. klíč, obsahující přepínače pro nastavení sdíleného disku, by se nemohl jmenovat prostě "opts", ale musel by se jmenovat nějak jako "mounted_disk_opts"; další problémy by nastaly v případě, že sdílených disků máme více ("mounted_disk_1_opts", "mounted_disk_2_opts"? Probůh!).

Klíče a hodnoty jsou proto uloženy v tzv. adresářích. Adresář je "tabulka", obsahující libovolné množství dvojic <klíč, hodnoty>; kromě toho může obsahovat další vnořené adresáře. Doména je tedy do jisté míry analogií disku: obsahuje kořenový adresář; v něm jsou nějaké klíče a hodnoty, a vnořené adresáře; každý z nich obsahuje klíče, hodnoty, a případné další adresáře...

Na obrázku vidíme příklad jediné domény NetInfa. Její kořenový adresář obsahuje klíč "master" s hodnotou "next/network", a klíč "xyz" s hodnotami "a", "b" a "c". Navíc jsou mu podřízené dva další adresáře; první z nich má sám další podřízený adresář, druhý dokonce dva.

Nyní je zřejmé, jak vyřešit výše uvedený problém: v doméně bude samostatný adresář, věnovaný sdíleným diskům. Ten bude obsahovat tolik vnořených adresářů, kolik disků je skutečně k dispozici — a každý z nich pak bude obsahovat vlastní klíč "opts" s vhodnými hodnotami.

Vzhledem k tomu, že adresáře uvnitř domén tvoří stromovou strukturu, a že domény samy jsou v databázi uloženy také v hierarchické stromové struktuře, je NetInfo jako celek vlastně jakási "dvojitá hierarchie" — odtud nadpis tohoto článku, "stromy ve stromech".

Obě struktury však mají odlišný účel: hierarchická struktura domén odpovídá struktuře sítě, a spolu s prohledáváním od listů ke kořenu zajišťuje korektní přiřazení hodnot jednotlivým počítačům. Hierarchická struktura adresářů uvnitř domény naproti tomu pomáhá se lépe orientovat v uložených datech.

Identifikace adresářů

Připomeňme, že domény jsou sice v principu určeny adresou počítače a tagem, ale stromová struktura umožňuje jejich specifikaci pomocí cest: každá doména má jméno (jménem kořenové domény je "/"), takže doménu můžeme ve stromu určit pomocí cesty od kořene, podobně, jako tomu je se soubory na disku.

Velmi podobně tomu je i u adresářů. Ty jsou v principu určeny čísly ID (jednoznačnými v rámci každé domény); každý adresář však má jméno. Jelikož adresáře tvoří uvnitř domény hierarchickou strukturu, můžeme se na ně opět odkazovat pomocí cest.

Přidělování jmen adresářům je jednoduchoučké: každý adresář (vyjma kořenového) obsahuje klíč "name", a jeho hodnotou je právě jméno adresáře. Kořenový adresář má samozřejmě standardní jméno "/". Pro příklady se podívejte znovu na obrázek: "/machines/next" je adresář, obsahující mj. dvojici <"ip_address", "1.2.3.4">; "/users/ocs" je adresář, obsahující mj. dvojici <"uid", "100">.

Příště...

...se seznámíme s aplikací NetInfoManager, která nabízí velmi pohodlný přístup k databázi NetInfo prostřednictvím grafického uživatelského rozhraní, a řekneme si něco víc o konkrétních klíčích a jejich hodnotách.

Konečně také dojde na první praktický trik: ukážeme si, jak prostřednictvím NetInfoManageru zařídit, abychom se mohli k počítači přihlásit jako root (superuživatel, který nemá prakticky žádná omezení).

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: