ESTE SUNT
Această intrare sau secțiune despre terminologia computerului și subiectele de inginerie software nu citează sursele necesare sau cei prezenți sunt insuficienți . |
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ă
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.
Piste index |
1 3 5 7 |
9 14 17 18 |
Urmărirea pistelor |
Piste index |
19 20 22 25 |
39 40 42 48 |
Urmărirea pistelor |
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
- Wikimedia Commons conține imagini sau alte fișiere pe ISAM