ISAM - ISAM
ISAM (et akronym for indekseret sekventiel adgangsmetode ) er en metode til at oprette, vedligeholde og manipulere computerfiler med data, så poster kan hentes sekventielt eller tilfældigt med en eller flere nøgler . Indekser over nøglefelter opretholdes for at opnå hurtig hentning af nødvendige filoptegnelser i indekserede filer . IBM udviklede oprindeligt ISAM til mainframe-computere , men implementeringer er tilgængelige for de fleste computersystemer.
Udtrykket ISAM bruges til flere relaterede begreber:
- IBM ISAM-produktet og den algoritme, det anvender.
- Et databasesystem , hvor en applikationsudvikler direkte bruger en applikationsprogrammeringsgrænseflade til at søge i indekser for at lokalisere poster i datafiler. Derimod bruger en relationsdatabase en forespørgselsoptimering, der automatisk vælger indekser.
- En indekseringsalgoritme, der giver både sekventiel og tastet adgang til data. De fleste databaser bruger en vis variation af B-træet til dette formål, selvom de originale IBM ISAM- og VSAM- implementeringer ikke gjorde det.
- Generelt ethvert indeks til en database. Indekser bruges af næsten alle databaser.
Organisation
I et ISAM-system er data organiseret i poster, der er sammensat af felter med fast længde, oprindeligt lagret sekventielt i nøglesekvens. Sekundære sæt af poster, kendt som indekser , indeholder markører til placeringen af hver post, så individuelle poster kan hentes uden at skulle søge i hele datasættet. Dette adskiller sig fra de samtidige navigationsdatabaser , hvor henvisningerne til andre optegnelser blev gemt inde i selve optegnelserne. Den vigtigste forbedring i ISAM er, at indekserne er små og kan søges hurtigt, muligvis helt i hukommelsen, hvorved databasen kun får adgang til de poster, den har brug for. Yderligere ændringer af dataene kræver ikke ændringer i andre data, kun den pågældende tabel og indekser.
Når en ISAM-fil oprettes, rettes indeksknudepunkter, og deres markører ændres ikke under indsatser og sletninger, der opstår senere (kun indholdet af bladknudepunkter ændres bagefter). Som en konsekvens af dette lagres nye poster i overløbskæder, hvis indsatser til en eller anden bladknude overskrider knudepunktets kapacitet. Hvis der er mange flere indsatser end sletninger fra en tabel, kan disse overløbskæder gradvist blive meget store, og dette påvirker den tid, det tager at hente en post.
Relationsdatabaser kan let bygges på en ISAM-ramme med tilføjelse af logik for at opretholde gyldigheden af forbindelserne mellem tabellerne. Typisk indekseres det felt, der bruges som link, den fremmede nøgle for hurtig opslag. Selvom dette er langsommere end blot at gemme markøren til de relaterede data direkte i posterne, betyder det også, at ændringer i det fysiske layout af data ikke kræver nogen opdatering af markørerne - posten vil stadig være gyldig.
ISAM er let at forstå og implementere, da det primært består af direkte adgang til en databasefil. Afvejningen er, at hver klientmaskine skal administrere sin egen forbindelse til hver fil, den har adgang til. Dette fører igen til muligheden for modstridende indsatser i disse filer, hvilket fører til en inkonsekvent databasetilstand. For at forhindre dette leverer nogle ISAM-implementeringer hele fil- eller individuel postlåsning . Låsning flere poster risikerer dødvande medmindre en forebyggelse dødvande ordning er strengt følges. Problemerne med at låse og fastlåses løses typisk med tilføjelsen af en klient-server- ramme, som bevæger klienten og bibeholder ordren. Fuld ACID- transaktionsstyringssystemer leveres af nogle ISAM-klient-serverimplementeringer. Dette er de grundlæggende begreber bag et databasestyringssystem (DBMS), som er et klientlag over det underliggende datalager.
ISAM blev erstattet hos IBM med en metode, der hedder VSAM (virtual storage access method). Endnu senere udviklede IBM SQL / DS og derefter DB2 , som fra og med 2004 promoverer IBM som deres primære databasesystem . VSAM er den fysiske adgangsmetode, der bruges i DB2.
OpenVMS
Det VMS -operativsystemet bruger Filer-11 filsystem i forbindelse med RMS ( Record Management Services ). RMS giver et ekstra lag mellem applikationen og filerne på disken, der giver en ensartet metode til dataorganisering og adgang på tværs af flere 3GL- og 4GL-sprog. RMS giver fire forskellige metoder til at få adgang til data; sekventiel, relativ postnummeradgang, adgang til filadresseadgang og indekseret adgang.
Den indekserede adgangsmetode til læsning eller skrivning af data giver kun det ønskede resultat, hvis filen faktisk er organiseret som en ISAM-fil med de passende, tidligere definerede nøgler. Adgang til data via de tidligere definerede nøgler er ekstremt hurtig. Flere taster, overlappende nøgler og nøglekompression inden for hash-tabellerne understøttes. Der findes et værktøj til at definere / omdefinere nøgler i eksisterende filer. Optegnelser kan slettes, selvom "affaldssamling" sker via et separat hjælpeprogram.
Designhensyn
ISAM blev udviklet på et tidspunkt, hvor computerhukommelse var en knap ressource. Følgelig designede IBM systemet til at bruge et minimum af hukommelse. Afvejningen var, at Input / Output-kanalen , kontrolenheden og disken blev holdt travlere. En ISAM-fil består af en samling af dataposter og to eller tre niveauer af indeks. Den sporet indeks indeholder den højeste tangent for hver disk styr på cylinderen den indekserer. Den cylinder indeks lagrer den højeste tangent på en cylinder, og den disk adresse på den tilsvarende sporet indeks. Et valgfrit hovedindeks , der normalt kun bruges til store filer, indeholder den højeste nøgle på et cylinderindeksspor og diskadressen til dette cylinderindeks. Når en fil er indlæst, flyttes dataposter ikke; indsatte poster placeres i et separat overløbsområde . For at finde en post med nøgle søges indekserne på disken af et komplekst selvmodificerende kanalprogram . Dette øgede den travle tid for kanalen, styreenheden og disken. Med øgede fysiske og virtuelle hukommelsesstørrelser i senere systemer blev dette set som ineffektivt, og VSAM blev udviklet for at ændre kompromisen mellem hukommelsesforbrug og diskaktivitet.
ISAMs brug af selvmodificerende kanalprogrammer forårsagede senere vanskeligheder for CP-67- understøttelse af OS / 360 , da CP-67 kopierede et helt kanalprogram til fast hukommelse, da I / O-operationen blev startet og oversatte virtuelle adresser til rigtige adresser.
ISAM-stil implementeringer
- Advantage Database Server database manager
- Berkeley DB
- Btrieve
- FairCom DB
- C-ISAM
- DataFlex proprietær database
- dBase og relaterede produkter Clipper og Foxpro
- Digital Equipment Corporation Record Management Services
- Enscribe er HP Tandem-struktureret filadgangsmetode
- Udvidelig opbevaringsmotor
- Access Database Engine (ACE og tidligere JET) brugt af Microsoft Access
- MySQL implementerer og udvider ISAM som MyISAM
- Paradoks
- pblIsam GPL implementering skrevet i C
- Raima database manager
- Superbase database familie
- DBM DBM og fladfil-databaser, der arbejder i tandem