Skjemaevolusjon

Fra Wikipedia, den frie encyklopedi

Innen informatikk er skjemaevolusjon en prosess hvor man håndterer behovet for å beholde gjeldende funksjonalitet i et data- og programvaresystem samtidig som man endrer på databasestrukturen. [1] Problemet er ikke begrenset til endring av skjemaet. Det påvirker også dataene som er lagret under det gitte skjemaet, og spørringene (og dermed applikasjonene) som baserer seg på det skjemaet.

Et databasedesign lages noen ganger som en nåværende (as of now) instans, og skjemaevolusjon vurderes derfor ikke. (Dette er annerledes, men relatert til når en database utformes etter prinsippet "én størrelse passer alle" men som ikke dekker attributtvolatilitet). Denne antakelsen, som nesten er urealistisk i forbindelse med tradisjonelle informasjonssystemer, blir uakseptabel i systemer som beholder store mengder historisk informasjon eller webinformasjonssystemer, som på grunn av den distribuerte og samarbeidende karakteren til utviklingen deres er gjenstand for et enda sterkere endringspress (fra 39 % til over 500 % mer intenst enn i tradisjonelle miljø).[2] På grunn av slik historisk arv er skjemaevolusjons-prosesser per 2008 spesielt krevende, og det er anerkjent at dataadministrasjonsbiten i en applikasjon er en av de vanskeligste og mest kritiske komponentene som må utvikles. Hovedproblemet er effekten av skjemautviklingen på eksisterende spørringer og applikasjoner. Som vist i artikkelen Schema Evolution in Wikipedia - Toward a Web Information System Benchmark[3] (som gir en analyse av MediaWiki-evolusjonen) kan hvert utviklingstrinn påvirke opptil 70 % av spørringene som opererer på skjemaet, som følgelig må omarbeides manuelt.

Allerede i 2008 hadde problemet vært anerkjent som påtrengende innnen databasesamfunnet i mer enn 12 år.[4][5] Å støtte skjemaevolusjon er et vanskelig problem som involverer kompleks avbilding av skjemaversjoner, og verktøystøtten har så langt vært svært begrenset. Nylige teoretiske fremskritt innen avbildingskomposisjon[6] og avbilding av invertibilitet[7] (som representerer hovedproblemene som ligger til grunn for skjemaevolusjonen) forblir nesten utilgjengelige for den store offentligheten. Problemet merkes spesielt av temporale databaser.[8]

Se også[rediger | rediger kilde]

Referanser[rediger | rediger kilde]

  1. ^ Roddick, John F (1995). «A survey of schema versioning issues for database systems». Information and Software Technology. 37 (7): 383–393. doi:10.1016/0950-5849(95)91494-K. 
  2. ^ «Schema Evolution Benchmark - Schema Evolution». yellowstone.cs.ucla.edu. Besøkt 29. juli 2010. 
  3. ^ (PDF) http://web.cs.ucla.edu/~zaniolo/papers/ICEIS2008.pdf. 
  4. ^ «An Online Bibliography on Schema Evolution» (PDF). Besøkt 2. mai 2017. 
  5. ^ Topor, Rodney; Salem, Kenneth; Gupta, Amarnath; Goda, Kazuo; Gehrke, Johannes; Palmer, Nathaniel; Sharaf, Mohamed; Labrinidis, Alexandros; Roddick, John F. (2009). «Schema Versioning». Encyclopedia of Database Systems (engelsk). Springer, Boston, MA. ISBN 978-0-387-35544-3. doi:10.1007/978-0-387-39940-9_323. 
  6. ^ Nash, Alan; Bernstein, Philip A.; Melnik, Sergey (2007). «Composition of mappings given by embedded dependencies». ACM Transactions on Database Systems. 32: 4–es. doi:10.1145/1206049.1206053. 
  7. ^ «Quasi-inverses of Schema Mappings» (PDF). 
  8. ^ Roddick, John F.; Snodgrass, Richard T. (1995). «Schema Versioning». The TSQL2 Temporal Query Language. The Springer International Series in Engineering and Computer Science (engelsk). Springer, Boston, MA. ISBN 9781461359661. doi:10.1007/978-1-4615-2289-8_22.