Sulautettu DBMS

Sulautettu tietokannan hallintajärjestelmä on tietokannan hallintajärjestelmien  arkkitehtuuri , jossa DBMS on kiinteästi yhteydessä sovellusohjelmaan ja toimii samassa tietokoneessa ilman ammattitaitoista hallintaa .

Sulautettuja DBMS-järjestelmiä käytetään monissa ohjelmissa, jotka tallentavat suuria tietomääriä, mutta jotka eivät vaadi pääsyä monilta tietokoneilta. Kokemattoman käyttäjän "työpöydällä" on myös ohjelmia, jotka voivat sisältää sulautetun DBMS:n: sähköpostiohjelmat ja pikaviestit (kirjeenvaihtotietokannat) [1] , mediasoittimet ( soittolistat ja kannet) [2] , kuvien katseluohjelmat ( metadata ja thumbnails) [3] , erilaisia ​​paikallisia tietokantoja, kuten puhelinluetteloita ja maantieteellisiä tietojärjestelmiä (toimitetut tiedot).

Historiallisesti paikalliset ja tiedostopalvelimen DBMS:t tarjosivat komentosarjakielen , jolla käyttäjä voi kirjoittaa sovellusohjelman. Näin on järjestetty Microsoft Access , FoxPro , Clipper , 1C: Accounting . Tämän lähestymistavan haittana oli tuloksena saatujen ohjelmien äärimmäinen köyhyys, rajalliset virheenkorjaustyökalut. Ja usein ei ollut kompaktia ajonaikaista ympäristöä, jota voitaisiin jakaa ohjelman kanssa; tarvitset ohjelman - asenna koko paketti. Dynaamisen linkityksen ja avoimen lähdekoodin yhteisön leviämisen myötä heiluri kääntyi toiseen suuntaan: anna ohjelmoijan kirjoittaa ohjelmansa sopivalla korkean tason kielellä . DBMS yhdistetään ohjelmaan ja tulee yhdeksi sen kanssa.

Ominaisuudet

Ei erillistä palvelinohjelmaa Fyysisesti upotettu DBMS on staattisesti tai dynaamisesti pääohjelmaan linkitetty kirjasto . Ohjelma ja DBMS eivät kommunikoi verkkopistokkeiden kautta , vaan erikoistuneen API :n [4] [5] kautta . Tällä on kuitenkin haittapuoli: usein ohjelmoijan on itse estettävä monisäikeiset kilpailut . Suuri nopeus ja alhainen muistinkulutus, erityisesti pitkillä merkkijonoilla ja BLOB :illa Erikoistetun API:n ansiosta luku- ja kirjoitustoimintojen määrä on minimaalinen. Usein pieni tietokannan standardien mukaan tietokannan enimmäiskoko Gigatavuista (PC-muistin määrä vuonna 2012) teratavuihin (kiintolevyn koon suuruusluokkaa). Esimerkiksi SQLite säilyttää aina muistissa tietokannan sisällysluettelon (analogisesti tiedostojen allokointitaulukon kanssa ), mikä rajoittaa tietokannan kokoa [6] . Tyypillisesti erikoistunut kyselykieli tai ei täysin yhteensopiva SQL-92 :n kanssa Suorituskyvyn vuoksi kehittäjät ottavat usein käyttöön joko epätäydellisen SQL:n ( SQLite ), [7] tai erikoistuneen kyselykielen ( BerkeleyDB ). Lisäksi sulautetut DBMS-järjestelmät voivat toimia täysin eri periaatteella kuin asiakas-palvelin: ping tietokantaan on nolla ja kysely voidaan suorittaa osissa, useilla DBMS-kutsuilla. Tyypillisesti käyttöoikeuksia ei ole [7] ; yksinkertainen liiketoimien eristäminen Suurempaa yhden käyttäjän tietokantaa ei tarvita. Tyypillisesti tapahtumat eristetään kirjoitus-yksi kerrallaan käyttämällä tavallisia käyttöjärjestelmämekanismeja, kuten tiedostolukkoa . Pääsy yhteen tiedostoon useista ohjelmista voidaan muodostaa: esimerkiksi SQLite toimii onnistuneesti kevyesti ladatuissa sivustoissa [6] . Mutta suuri kuorma on hänelle liian kova. Tietokannan arkistointia ja replikointia ei yleensä ole Sulautettu tietokanta on vain yhtä luotettava kuin DBMS-kirjasto ja tiedostojärjestelmä , jossa tietokanta sijaitsee. Tunnetut sulautetut DBMS-järjestelmät ovat yleensä hyvin testattuja [ 8] ja nykyaikaiset tiedostojärjestelmät ovat erittäin luotettavia. On kuitenkin monia tapoja menettää tietoja, [9] jolloin tällaiset ratkaisut ovat luotettavuudeltaan huonompia kuin palvelinpuolen DBMS. Pääsääntöisesti ei ole olemassa kielityökaluja, jotka yksinkertaistavat pääsyä tietokantaan Erikoistuneet DBMS-kielet, kuten xBase , ovat yleensä kyselykielen ja sovellusohjelmointikielen yhdistelmä. Yleiskäyttöisissä ohjelmointikielissä pyynnön oikeellisuutta ei tarkisteta käännösvaiheessa, vaan vasta kun pyyntö lähetetään DBMS:ään. Ja tietysti yleiskäyttöisessä ohjelmointikielessä tietokannan pääsyrakenteet (sekä sulautetut että asiakaspalvelin) ovat raskaat. C# :ssa on kuitenkin LINQ - kyselykieli , joka käännetään menetelmäkutsujen yhdistelmäksi, joka yleensä valmistelee tavallista SQL :ää .

Esimerkkejä

Muistiinpanot

  1. Erityisesti Skype käyttää SQLitea kirjeenvaihtotietokantojen tallentamiseen
  2. Erityisesti AIMP käyttää SQLitea soittolistojen tallentamiseen
  3. Erityisesti XnView tallentaa pikkukuvat ja tunnisteet SQLite -tietokantaan
  4. ↑ BerkeleyDB API esimerkki 
  5. SQLite API -esimerkki arkistoitu 20. joulukuuta 2012 Wayback Machinessa 
  6. 1 2 SQLiten käyttäminen Arkistoitu 20. joulukuuta 2012 Wayback Machinessa 
  7. 1 2 Mitä SQLitessa ei ole Arkistoitu 20. joulukuuta 2012 Wayback Machinessa 
  8. Kuinka SQLite testataan Arkistoitu 21. joulukuuta 2012 Wayback Machinessa 
  9. Kuinka vioittaa SQLite-taulukko Arkistoitu 9. elokuuta 2014 Wayback Machinessa