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ä
- Accuracer-tietokantajärjestelmä
- Advantage-tietokantapalvelin
- Oracle Berkeley DB
- CSQL
- EffiProz
- ElevateDB
- Empress Embedded Database
- Laajennettava säilytysmoottori
- eXtremeDB
- Firebirdin sulautettu versio
- HSQLDB
- InfinityDB
- Informix Dynamic Serverin sulautettu versio
- InnoDB:n sulautettu versio
- InterBasen sulautettu versio
- ITTIA DB
- Kioton kabinetti
- MySQL:n sulautettu versio
- NexusDB
- RDM Embedded
- ScimoreDB
- SolidDB
- SQLite
- Microsoft SQL Server Compact
- TurboDB
- Valentina DB
- VistaDB
Muistiinpanot
- ↑ Erityisesti Skype käyttää SQLitea kirjeenvaihtotietokantojen tallentamiseen
- ↑ Erityisesti AIMP käyttää SQLitea soittolistojen tallentamiseen
- ↑ Erityisesti XnView tallentaa pikkukuvat ja tunnisteet SQLite -tietokantaan
- ↑ BerkeleyDB API esimerkki
- ↑ SQLite API -esimerkki arkistoitu 20. joulukuuta 2012 Wayback Machinessa
- ↑ 1 2 SQLiten käyttäminen Arkistoitu 20. joulukuuta 2012 Wayback Machinessa
- ↑ 1 2 Mitä SQLitessa ei ole Arkistoitu 20. joulukuuta 2012 Wayback Machinessa
- ↑ Kuinka SQLite testataan Arkistoitu 21. joulukuuta 2012 Wayback Machinessa
- ↑ Kuinka vioittaa SQLite-taulukko Arkistoitu 9. elokuuta 2014 Wayback Machinessa