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:
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):
- Mac OS X - příjezd na čas
- Mac OS X - Instalace
- Mac OS X prakticky 1.
- Mac OS X - podpora českého prostředí
- Mac OS X - tak trochu utajený update
- Mac OS X prakticky 2.
- Mac OS nebo X?
- Mac OS X pro všechny - nyní i v Čechách
- Hledá se majitel souboru!
- Mac OS X - domovská složka a plocha
- Mac OS X - pohled do základů
- Mac OS X - uživatelské rozhraní zblízka, 1. část
- Mac OS X - uživatelské prostředí zblízka, 2. část
- Mac OS X - uživatelské prostředí zblízka, 3. část
- Mac OS X: uživatelské prostředí zblízka 4
- Novinky v Mac OS X 10.1, 1. část
- Novinky v Mac OS X 10.1, 2. část
- Mac OS X v síti...
- Novinky v Mac OS X, 3. část -jak se tiskne...
- Mac OS X pod kapotou - resources
- NetInfo - síťové centrum Mac OS X
- Uložení dat v NetInfu, aneb stromy ve stromech
- K vašim službám...
- ColorSync 4 - krok k Microsoftu?
- NetInfoManager, aneb přímá cesta do databáze
- K vašim službám 2: co nabízí Apple
- Mac OS X Server 10.1 - instalace, 1. část
- Některé standardní klíče a adresáře v NetInfu
- Další standardní klíče a adresáře v NetInfu
- K vašim službám 3: co nabízejí ostatní
- MacOS X Server 10.1 - instalace, druhá část.
- K vašim službám 4: vyhrazeno pro programátory
- Mac OS X a čeština
- K vašim službám 5: stále vyhrazeno pro programátory
- Tisk do souboru v OS X
- Growl - hračka nejen pro vývojáře
- PathFinder 4 - Když Finder nestačí
- RSS sem, RSS tam, co já s nimi udělám?
- Aplikace pro snadné používání služby Twitter
- Popis grafického rozhraní Mac OS X.