Indlejret DBMS

Et indlejret databasestyringssystem  er en arkitektur af databasestyringssystemer, når DBMS er tæt forbundet med applikationsprogrammet og kører på den samme computer uden at kræve professionel administration .

Embedded DBMS bruges i mange programmer, der gemmer store mængder data, men som ikke kræver adgang fra mange computere. På "skrivebordet" af en uerfaren bruger er der også programmer, der kan indeholde et indlejret DBMS: mailklienter og instant messengers (korrespondancedatabaser) [1] , medieafspillere ( afspilningslister og covers) [2] , billedfremvisere ( metadata og thumbnails) [3] , forskellige lokale databaser som telefonbøger og geografiske informationssystemer (leverede data).

Historisk set leverede lokale DBMS'er og filservere et scriptsprog , hvor brugeren kunne skrive et applikationsprogram. Sådan er Microsoft Access , FoxPro , Clipper , 1C: Accounting arrangeret . Ulempen ved denne tilgang var den ekstreme fattigdom i de resulterende programmer, begrænsede fejlfindingsværktøjer. Og ofte var der ikke noget kompakt runtime-miljø, der kunne distribueres med programmet; du skal bruge et program - installer hele pakken. Med udbredelsen af ​​dynamiske links og open source -fællesskabet svingede pendulet den anden vej: Lad programmøren skrive sit program på det sprog på højt niveau, der er praktisk. DBMS vil blive forbundet med programmet og blive ét med det.

Funktioner

Intet separat serverprogram Et fysisk indlejret DBMS er et bibliotek, der er statisk eller dynamisk forbundet med hovedprogrammet. Programmet og DBMS kommunikerer ikke gennem netværkssockets , men gennem en specialiseret API [4] [5] . Dette har dog en ulempe: ofte skal programmøren selv forhindre flertrådede løb . Høj hastighed og lavt hukommelsesforbrug, især på lange strenge og BLOB'er Takket være en specialiseret API er antallet af læse-skrive-operationer minimalt. Ofte lille efter standarderne i databasen, den maksimale størrelse af databasen Fra enheder af gigabyte (mængden af ​​pc-hukommelse i 2012) til enheder af terabyte (i størrelsesordenen på størrelsen af ​​en harddisk). For eksempel gemmer SQLite altid databasens indholdsfortegnelse (analogt med filallokeringstabellen ), dette begrænser størrelsen af ​​databasen [6] . Typisk et specialiseret forespørgselssprog eller ikke fuldt kompatibelt med SQL-92 For ydeevnens skyld implementerer udviklere ofte enten ufuldstændig SQL ( SQLite ), [7] eller et specialiseret forespørgselssprog ( BerkeleyDB ). Derudover kan indlejret DBMS fungere efter et helt andet princip end klient-server: Ping til databasen er nul, og forespørgslen kan udføres i dele med flere kald til DBMS. Typisk er der ingen brugerrettigheder [7] ; simpel transaktionsisolering _ En større enkeltbrugerdatabase er ikke nødvendig. Typisk isoleres transaktioner på en skrivning-en-for-en- basis ved hjælp af standard OS-mekanismer som fillåse . Adgang til én fil fra flere programmer kan etableres: for eksempel fungerer SQLite med succes på let indlæste websteder [6] . Men den høje belastning er for hård for ham. Som regel er der ingen arkivering og replikering af databasen En indlejret database er kun så pålidelig som DBMS-biblioteket og det filsystem, som databasen ligger på. Velkendte indlejrede DBMS'er har en tendens til at være velafprøvede [ 8] , og moderne filsystemer er meget pålidelige. Der er dog mange måder at miste data på, [9] , således at sådanne løsninger er ringere i pålidelighed i forhold til server-side DBMS. Som udgangspunkt er der ingen sprogværktøjer, der forenkler adgangen til databasen Specialiserede DBMS-sprog som xBase er normalt en kombination af et forespørgselssprog og et applikationsprogrammeringssprog. I almene programmeringssprog vil rigtigheden af ​​anmodningen ikke blive kontrolleret ved kompilering, men kun når anmodningen sendes til DBMS. Og selvfølgelig, i et programmeringssprog til generelle formål, vil databaseadgangsstrukturer (både indlejret og klient-server) være tunge. C# har dog et LINQ -forespørgselssprog, der kompileres til en kombination af metodekald, som typisk forbereder almindelig SQL .

Eksempler

Noter

  1. Skype bruger især SQLite til at gemme korrespondancedatabaser
  2. Især bruger AIMP SQLite til at gemme afspilningslister
  3. XnView gemmer især thumbnails og tags i SQLite- databasen
  4. Eksempel på BerkeleyDB  API
  5. Eksempel på SQLite API Arkiveret 20. december 2012 på Wayback Machine 
  6. 1 2 Brug af SQLite Arkiveret 20. december 2012 på Wayback Machine 
  7. 1 2 Hvad er der ikke i SQLite Arkiveret 20. december 2012 på Wayback Machine 
  8. Sådan testes SQLite Arkiveret 21. december 2012 på Wayback Machine 
  9. Sådan korrumperer du en SQLite-tabel Arkiveret 9. august 2014 på Wayback Machine