ESTE SUNT

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

ISAM standuri pentru I ndexed S equential A ccesul M METODA (indexat metoda de acces secvențial), și este o modalitate de a stoca datele să fie extrase rapid. Inițial dezvoltat de IBM , aceasta face acum baza pentru stocarea datelor în mai multe relaționale și non - relaționale baze de date .

Descriere

Într-un sistem ISAM, datele sunt împărțite în înregistrări constând din câmpuri cu lungime fixă. Înregistrările sunt stocate secvențial, așa cum se făcea inițial pentru a accelera accesul de pe un dispozitiv cu bandă. Apoi, există un set secundar de tabele hash numite indexuri , care conțin indicatori către înregistrări, astfel încât o înregistrare poate fi extrasă fără a fi nevoie să iterați prin întregul set de date. Aceasta este o diferență față de bazele de date de navigație , unde indicațiile către alte date se aflau în interiorul înregistrărilor. Îmbunătățirea în ISAM se datorează faptului că indexurile sunt mici și permit căutări rapide, deoarece baza de date accesează doar înregistrările de care are nevoie. În plus, orice modificare a datelor necesită schimbarea înregistrărilor și indexurilor în cauză, dar nu și a altor date, cum ar fi indicatorii.

Bazele de date relaționale pot fi ușor construite pe un cadru ISAM cu adăugarea de logică pentru a menține legăturile dintre tabele valabile. În general, câmpul folosit ca legătură, numit cheie străină , este indexat pentru a permite căutări rapide. Această metodă este mai lentă decât stocarea indicatorului la datele legate în înregistrare, dar dacă modificați structura fizică a datelor, nu este nevoie să actualizați indicatorii, deoarece legăturile rămân valabile.

ISAM este foarte simplu de înțeles și implementat, deoarece constă în esență în acces direct și secvențial la un fișier de bază de date. De asemenea, este foarte ieftin din punct de vedere al performanței. Dezavantajul este că fiecare echipament client trebuie să-și gestioneze propria conexiune pentru fiecare fișier pe care îl accesează. Acest lucru duce la posibilitatea ca schimbările de date distincte să intre în conflict, creând astfel inconsecvențe. Această problemă este de obicei rezolvată prin implementarea unei platforme client-server care gestionează solicitările clientului menținând în același timp ordinea. Acesta este conceptul de bază din spatele SQL , care se află la un nivel mai ridicat de abstractizare decât stocarea datelor.

ISAM a fost înlocuit de IBM printr-o metodă numită VSAM ( Virtual Sequential Access Method ), utilizată și în DB2 , care este și astăzi principalul SGBD .

Organizarea fișierelor ISAM atribuie fiecărui tuplu o poziție pe baza valorii câmpului cheie. Această organizație se bazează pe ideea de a da tupelor o ordonare fizică care reflectă ordonarea lexicografică a valorilor prezente într-un câmp cheie. În realitate, câmpul ales pentru a defini ordonarea tuplurilor nu trebuie să fie un câmp cheie. În ceea ce privește criteriile de sortare, domeniile obișnuite ale valorilor, precum șirurile de caractere, numere întregi sau reale, urmează o ordine convențională: pentru numere întregi sau numere reale o considerăm pe cea numerică, în timp ce pentru șirurile de caractere avem ordinea lexicografică. Pentru a crește viteza de acces la fișierul sortat (pe care îl numim fișier principal), definim un al doilea fișier (numit index rar), care constă din perechile:

(<valoare cheie>, <adresă bloc>)

Pentru fiecare bloc al fișierului principal, în fișierul index există o înregistrare (µ, b): µ este o valoare nu mai mare decât cea a tuturor tastelor conținute în blocul b și mai mare (>) decât valorile tastele fiecărui bloc precedent b. Primul câmp al (µ, b) este o cheie, iar fișierul index este sortat în raport cu acesta.

ISAM: Organizare logică

Exemplu de organizare logică

ISAM este o organizație statică, supusă reorganizării periodice costisitoare. Fiind static, este necesar să pregătiți zone de revărsare pentru adăugarea de elemente.

Format nod intern

K 1 P 1 K 2 P 2 ... K M P M

Fiecare pereche (k i ; p i ) este astfel încât k i este cea mai mare valoare cheie din subarborele indicat de p i .

ISAM: Organizare fizică

ISAM are o schemă specifică de alocare a datelor și a indexului pe dispozitivul de stocare secundar. În special, se disting trei domenii:

  • Zona primară
  • Zona de revărsare
  • Zona index

Zona primară

Aceasta este zona configurată pentru a găzdui datele. Se compune dintr-o serie de cilindri adiacenți pe care unele urme sunt rezervate pentru index și altele pentru zonele de revărsare.

Cilindru 0
Piste index
1 3 5 7
9 14 17 18
Urmărirea pistelor
Cilindrul 1
Piste index
19 20 22 25
39 40 42 48
Urmărirea pistelor
Cilindrul 2
Independent

zona de revărsare

Suprafață de preaplin

Această zonă este utilizată în esență pentru a stoca înregistrări noi, care altfel nu ar putea fi inserate în zona principală fără a fi nevoie să rescrieți secvența fișierelor. Există două tipuri de revărsări de suprafață:

  • Zona de revărsare a cilindrului : urme rezervate pentru a gestiona revărsarea de date a fiecărui cilindru. Înregistrările debordante sunt legate într-un lanț.
  • Zona de deversare independentă : zona comună de pe ultimul cilindru este utilizată numai atunci când zona de deversare specială este saturată.

Exemplu

Să luăm ca exemplu următoarele stocări de date în cilindrul 5:

Urmări Data în cilindrul 5
1 205 206 208 210 213
2 214 219 220 222 225
3 226 227 230 236 neutilizat

Dacă se adaugă înregistrarea cu cheia 209, aceasta provoacă mișcarea înregistrării 213 de la pista 1 în zona de revărsare, mutând 210 în locul său și inserând 209 în locul liber de 210.

Urmări Data în cilindrul 5 Comentarii
1 205 206 208 209 210 Prima intalnire

zonă

2 214 219 220 222 225
3 226 227 230 236 neutilizat
...
9 213 Zona de revărsare

Zona index

Pentru a facilita localizarea aleatorie a înregistrărilor, ISAM menține trei niveluri de indici pe disc:

  • Urmăriți indexul
  • Indicele cilindrului
  • Index principal (opțional)

Track Index

Există un indice de cale pentru fiecare cilindru, care ocupă în general calea 0 (prima poziție). Fiecare intrare corespunde unei urme pe cilindru și stochează:

  • cea mai mare valoare cheie din zona primară
  • cea mai mare valoare cheie din zona de revărsare
  • indicatorul către prima înregistrare din zona de revărsare locală

Indicele cilindrului

Există un singur index cilindru per fișier. Fiecare intrare este legată de un cilindru și stochează cea mai mare valoare a cheii conținute în acesta. De exemplu, dacă fișierul stocat pe 6 cilindri, indexul cilindrului conține 6 intrări.

Index Master

Acest indice este utilizat numai dacă indicele cilindrului este prea mare și nu garantează o indexare eficientă. În indexul master există o intrare pentru fiecare pistă a indexului cilindrului, pentru a stoca cea mai mare valoare a cheii pistei și adresa pistei.

Bibliografie

  • Paolo Ciaccia, Dario Mario, Lecții în baze de date, 2013, Editrice Esculapio, ISBN 978-8874887187

Elemente conexe

Alte proiecte