Et databasesystem (abbr. DBMS ) er systemprogramvare som brukes til å lagre, manipulere eller administrere og dele data i en database , noe som garanterer kvaliteten, holdbarheten og konfidensialiteten til informasjonen, mens den skjuler kompleksiteten i operasjonene.
Et DBMS (på engelsk DBMS for database management system ) gjør det mulig å registrere, finne, endre, sortere, transformere eller skrive ut informasjonen til databasen. Det gjør det mulig å utføre rapporter om den registrerte informasjonen og inkluderer mekanismer for å sikre konsistensen av informasjonen, for å unngå tap av informasjon på grunn av sammenbrudd, for å sikre konfidensialitet og for å tillate bruk av annen programvare. Avhengig av modell kan DBMS inkludere et enkelt grafisk grensesnitt opptil sofistikerte programmeringsspråk.
Database management systems er universell programvare, uavhengig av bruken av databaser. De brukes til mange dataprogrammer, inkludert minibanker , reservasjonsprogramvare , digitale biblioteker , lagerprogramvare , ERP-programvare eller de fleste blogger og nettsteder. Det er mange databasesystemer . I 2008 hadde Oracle nesten halvparten av DBMS-markedet med MySQL og Oracle Database . Deretter kommer IBM med nesten 20%, og gir lite rom for andre spillere.
DBMS brukes ofte av annen programvare, så vel som administratorer eller utviklere . De kan være i form av en programvarekomponent , en server , en applikasjonsprogramvare eller et programmeringsmiljø .
I 2011 håndterte de fleste DBMSer på markedet relasjonsdatabaser .
DBMS er mellomvaren mellom brukere og databaser. En database er en datalager som består av flere filer som utelukkende håndteres av DBMS. Sistnevnte skjuler kompleksiteten ved håndtering av strukturene i databasen ved å gi et syntetisk syn på innholdet.
DBMS- og databasepakken er ment å muliggjøre datalagring på en måte som gir mange fordeler i forhold til konvensjonell lagring av filer . Det gjør at data kan skaffes og endres raskt, og deles mellom flere brukere. Det sikrer ingen redundans, integritet, konfidensialitet og holdbarhet av data, samtidig som det gir midler for å unngå mulige modifikasjonskonflikter og skjule filformatdetaljer fra databaser.
Dataene blir registrert i form av sekvenser av biter som representerer bokstaver, tall, farger, former osv. DBMS inkluderer forskjellige mekanismer som er ment for raskt å finne dataene og konvertere dem for å få informasjon som har en retning.
Moderne DBMS er sofistikert programvare som krever høyt dyktig personell, og bruken av dem resulterer ofte i betydelig økning i lisensiering og opplæringskostnader.
Et DBMS brukes til å registrere data, deretter søke etter det, endre det og automatisk opprette rapporter (engelsk rapport ) av innholdet i databasen. Den lar deg spesifisere typer data , strukturen til dataene som finnes i databasen, samt konsistensregler som fravær av redundans.
Kjennetegnene til dataene som er registrert i databasen, samt forhold, konsistensregler og tilgangskontrollister er registrert i en katalog som ligger inne i databasen og håndteres av DBMS.
Søket og datahåndteringen, samt å definere egenskapene, konsistensreglene og tilgangstillatelsene, kan uttrykkes som spørsmål (engelsk spørring ) på et dataspråk som er anerkjent av DBMS. SQL er det mest populære dataspråket, det er et standardisert språk for håndtering av databaser. Det er mange andre språk som Databasic of Charles Bachman , Dataflex, dBase eller xBaseScript (etc.).
Databaser kan ha flere terabyte ; en størrelse som er større enn ledig plass i datamaskinens hovedminne. Databasene er lagret på harddisker , sistnevnte har høyere kapasitet, men er tregere, og DBMS er utstyrt med mekanismer for å øke hastigheten på driften. Moderne DBMS registrerer ikke bare data, men også deres beskrivelse, skjemaer, definisjon av rapporter, konsistensregler, prosedyrer ; de tillater lagring av videoer og bilder. DBMS manipulerer de komplekse strukturene som er nødvendige for å bevare denne informasjonen.
DBMS er utstyrt med mekanismer som utfører kontroller uten brukerens viten, for å sikre at transaksjoner lykkes, unngå problemer på grunn av samtidig tilgang og sikre datasikkerhet:
Avhengig av konstruksjonen og mulighetene de tilbyr, kan DBMSs sies å være hierarkiske, relasjonelle, objektorienterte, objektrelasjonelle, XML / RDF eller blandede:
I tillegg kan DBMS distribueres, sentraliseres eller innebygd og kan være romlig:
DBMS er også forskjellige i størrelsen på databasene de kan håndtere.
De forskjellige DBMS-ene på markedet skiller seg ut fra bruken av databasene: omfanget påvirker antall samtidige brukere, størrelsen på databasene, plasseringen (e) og den nødvendige datakraften. Noen DBMS-er støtter veldig store databaser, og krever kraftige og veldig dyre datamaskiner. Andre DBMS-er kjører på billige personlige datamaskiner, med begrensninger på databasestørrelse og datakraft. De kan klassifiseres i:
Fram til 1960 ble informasjon registrert i filer som ble håndtert av applikasjonsprogramvare. Ideen om databaser ble lansert i 1960 som en del av Apollo-programmet . Målet var å lage en datamaskin som var ment å registrere den store mengden informasjon relatert til romprogrammet, med sikte på å lande på Månen før slutten av tiåret. Det er for dette formålet at IBM sammen med Rockwell markedsfører IMS- programvaren ( Information Management System ). Med dette DBMS blir informasjon registrert i databaser organisert på en hierarkisk måte.
Samtidig lanserte General Electric , med hjelp av Charles Bachman, programvaren Integrated Data Store . Med dette DBMS blir informasjonen registrert i databaser organisert i henhold til en nettverksmodell, som gjør det mulig å registrere informasjon som har en mer kompleks organisasjon enn den hierarkiske modellen.
I 1965 utviklet Dick PICK Pick- operativsystemet , som inkluderte et DBMS og det databasiske språket fra Charles Bachman . I 2002 ble Picks teknologi brukt i moderne produkter som JBase.
I 1967 dannet CODASYL- konsortiet en arbeidsgruppe, databasens oppgavegruppe abr. DBTG , som arbeider med standardisering av to dataspråk relatert til databaser: DML og DDL.
De hierarkiske og nettverksorganisasjonene på 1960-tallet manglet uavhengighet fra filformat, gjorde datamanipulering komplisert og manglet et teoretisk grunnlag. I 1970 ga Edgar Frank Codd , en IBM- ansatt, ut boken A relational model of data for large shared data banks , et arbeid som presenterer det teoretiske grunnlaget for relasjonsorganisasjon . Basert på arbeidet til EF Codd, utvikler IBM System R DBMS , som vil bli markedsført på slutten av 1970-tallet. Det er ment å demonstrere muligheten for en relasjonell DBMS . Dataspråket som er spesifikt for dette DBMS er Structured Query Language (forkortet SQL ), definert av IBM og ment for håndtering av relasjonsdatabaser .
Charles Bachman mottok Turing-prisen i 1973 for disse bidragene til databaseteknologien, og Edgar Frank Codd mottok Turing-prisen i 1981 av samme grunner.
I 1978 , ANSI publisert beskrivelsen av ANSI / Sparc- arkitektur som tjener som en referansemodell i forhold til uavhengighet av DBMS data.
De to tungvekterne DBMS-markedet i 2010, som er IBM DB2 og Oracle Database, ble markedsført i 1979 og er begge basert på relasjonsmodellen. Samme år ble SQL- språket standardisert av ISO .
De søkemotorer og datavarehus er dataprogrammer dukket opp på 1990-tallet , noe som påvirket DBMS markedet. Søkemotorer har krevd behandling av ustrukturert informasjon skrevet på naturlig språk. Og datalagerene krevde innsamling og konsolidering av veldig store mengder informasjon for å produsere sammendragstabeller.
De objektorienterte og objektrelasjonelle organisasjonsmodellene dukket opp på 1990-tallet. De første objektrelasjonelle DBMS-ene var Postgres , Informix og Oracle Database i 1995 . Standarden knyttet til SQL- språket ble endret i 1999 for å kunne gjelde for denne typen DBMS.
En DBMS består av mange programmer, inkludert motoren, katalogen, spørringsprosessoren, kommandospråket og verktøyene:
DBMS-verktøyene brukes til å lage rapporter , skjermer for å legge inn informasjon, importere og eksportere data fra og til databasen, og håndtere katalogen. Disse verktøyene brukes av databaseadministratoren til å utføre sikkerhetskopier, gjenopprette data, tillate eller nekte tilgang til viss informasjon, og gjøre endringer i innholdet i databasen - opprette, lese, modifisere og slette informasjon, forkortet CRUD (engelsk create, read , oppdater, slett ). Disse verktøyene brukes også til å overvåke motoraktivitet og utføre justeringsoperasjoner .
Moderne high-end DBMS har mange utvidelser som gir tilleggsfunksjonalitet, men konstruksjonen forblir lik de fleste DBMSer.
I en relasjonell DBMS behandles forespørsler til DBMS vanligvis i fem trinn:
Sentral del av DBMS, databasemotoren utfører dataopptak og gjenfinning. Avhengig av DBMS, kan databasen bestå av en eller flere filer. Motorens rolle er å manipulere disse filene.
De indekser er strukturer for å øke hastigheten på leteaksjoner, de blir vedlikeholdt av databasemotoren. De Utsikten er virtuelle tabeller opprettet fra andre tabeller og innhold blir vedlikeholdt av databasemotoren. Den håndterer også katalogen, kontrollerer transaksjoner, kontrollerer konsistensen av informasjonen og kontrollerer at brukerne bare får tilgang til autorisert informasjon:
Motoren bruker buffere : Dette er et sentralt minneplass som brukes til midlertidig lagring av informasjon under transport. Informasjon blir samlet inn fra filer og deretter plassert i buffere. Under påfølgende avlesninger blir informasjonen hentet fra det eksisterende bufferminnet - mye raskere enn å lese en fil. Fillesingsoperasjoner reduseres dermed, og skriveoperasjoner forskyves, noe som øker DBMS.
Operasjonene som utføres av motoren skrives ofte til en loggfil , som gjør at de kan rulles tilbake i tilfelle en hendelse - feil eller tilbakeføring av en transaksjon.
I en databaseenhet - som inkluderer applikasjonsprogramvare, en DBMS og en database - skiller måten informasjonen blir presentert på for brukerne fra måten informasjonen er organisert på, og måten informasjonen er organisert på, skiller seg fra måten informasjonen blir presentert på for brukerne. informasjonen lagres i filer. Denne 3- punkts konstruksjonen er basert på ANSI / SPARC referansemodell .
Hver av de tre visningene kan modifiseres for eksempel ved å formulere forespørsler på språket til DBMS. Datauavhengighet er kapasiteten til et DBMS for å tillate endring av noen av de tre visningene uten å kreve endring av de andre visningene:
Det er datauavhengighet hvis konseptdiagrammet kan modifiseres uten at det kreves endring av brukerens synspunkt eller av den fysiske strukturen, og hvis den fysiske strukturen kan modifiseres uten at det kreves modifikasjoner av konseptdiagrammet eller den fysiske strukturen.
Det er flere kategorier av brukere av DBMS, deriblant databaseadministratoren , databasedesigneren , utvikleren , samt brukere - mer eller mindre informert - om datasystemer.
Den databaseadministrator (engelsk databaseadministrator Rep. DBA ) er en ekspert på DBMS, han tar seg av installasjon og vedlikehold av DBMS og vedleggene tilhørende verktøy. Han er personen som er ansvarlig for integriteten, sikkerheten, tilgjengeligheten av informasjonen i databasene, samt ytelsen til DBMS. Den beskytter informasjon mot ulykker på grunn av feil håndtering, programmeringsfeil, ondsinnet bruk eller feil som kan føre til forverring av innholdet i databaser. For å gjøre dette autoriserer eller forby databaseadministratoren tilgang til informasjon og overvåker aktiviteten til DBMS. Det gjør jevnlig backup kopier for å tillate gjenoppretting av data som er tapt eller skadet og gjør tuning justeringer for å forbedre ytelsen til DBMS. Administratoren bruker databaseadministrasjonsverktøyene eller DBMS-kommandospråket.
Den database designer er den som identifiserer den informasjon som vil bli lagret i databasen, forholdet mellom denne informasjon og begrensninger som nærvær eller fravær av redundans. Databasedesigneren har inngående kunnskap om bruken av denne informasjonen og om reglene som følger av den. Han er ansvarlig for å organisere databasen på en hensiktsmessig måte ved å sette opp strukturene som er nødvendige for lagring av informasjon.
De utviklere lage programmer og batch i et høynivå programmeringsspråk. Hver programvare retter seg mot en bestemt aktivitet - for eksempel å finne bøker i et bibliotek - og er ment for andre brukere av DBMS. Utvikleren jobber med en person som utfører den aktuelle aktiviteten, for å bestemme de karakteristiske behovene til denne aktiviteten, deretter bestemmer han produktets arkitektur , og implementerer den ved å skrive kildekoden . Programvaren inneholder instruksjoner som ber DBMS om å finne eller endre informasjonen. Noen erfarne brukere, som kan et programmeringsspråk, lager programmer for eget bruk.
Kraftige brukere har kunnskapen om å bruke DBMS-kommandospråket og få tilgang til dataene fra sin personlige datamaskin. De er autorisert av administratoren for å se og endre viss informasjon. Informerte brukere kan søke, legge til, endre eller slette data ved hjelp av DBMS-kommandospråket, mens lekbrukere aldri bruker kommandospråket, men får tilgang til informasjonen gjennom applikasjonsprogramvare som er gitt for dette formålet.
Legg brukere tilgang til informasjon via applikasjonsprogramvare. De kjører kommandoer eller velger menyer og har ingen kunnskap om kommandospråk eller databaseorganisasjon. Operasjonene som utføres av disse brukerne er mindre sofistikerte og begrenset til mulighetene som tilbys av programvaren.
DBMS er kompleks og strategisk programvare som brukes i et stort antall IT-applikasjoner, inkludert e-handel , medisinske journaler, betalinger, menneskelige ressurser , kundeforholdsadministrasjon og logistikk, samt blogger og wikier. , De er resultatet av flere tiår med vitenskapelig og industriell forskning. Den første DBMS i historien påvirket denne markedssektoren sterkt, og ideene til disse pionerene blir fortsatt kopiert og gjenbrukt av moderne DBMS. DBMS-markedet er veldig tynt, dominert av en håndfull high-end konkurrerende produkter.
Salgsvolumet av relasjonell DBMS er estimert til mellom 6 og 10 milliarder dollar per år i 2005. I 2008 okkuperer de tre markedstennerne IBM DB2 , Oracle Database og Microsoft SQL Server 80% av det relasjonelle DBMS-markedet.
I 2002 ble DBMS-markedet delt inn i tre segmenter:
Et nisjemarked i 2002, Open Source DBMS-markedet ble anslått til 850 millioner dollar i 2008, og ifølge prognoser til 1,2 milliarder dollar i 2010 inkluderer denne kostnaden lisenser, garanti og teknisk assistanse. DBMS-er av stor merkevare er verdsatt for oppdragskritiske applikasjoner på grunn av deres robusthet, rikdom og holdbarhet , men DBMS- er med åpen kildekode er enklere, og tilbyr ikke alle detaljene med store merkevareprodukter, de er verdsatt for deres brukervennlighet og ettertraktede av små og mellomstore institusjoner. Ulike kunder håper å kunne erstatte dyre store DBMS-er med billigere DBMS-er med åpen kildekode , men slike erstatninger er sjeldne, og MySQL og PostgreSQL DBMS blir brukt til nye applikasjoner på grunn av migrasjonsproblemer .
Valget av DBMS er ofte en strategisk beslutning for en institusjon. Kostnaden for å anskaffe et DBMS som støtter flere tusen brukere og en stor database, kan nærme seg 1 million dollar . I 1993 var det forskjellige relasjonelle DBMSer, og disse ble ansett som modne nok til å brukes i strategiske applikasjoner. Produktene er komplekse, forskjellene er noen ganger subtile, noe som gjør valget vanskelig for kjøperen. Ti år senere er valget ikke lenger så vanskelig som det var før; antall DBMS-utgivere har redusert på grunn av fusjoner, og markedet domineres av et lite antall store aktører.
I følge en undersøkelse utført av tidsskriftet Network World i 1993 , ser det ut til at kriteriene for å velge den viktigste DBMS i kjøpernes øyne er pålitelighet, ytelse, samsvar med standarder, utvalg av datamaskiner som støttes og bruksanlegg. Prisen vises bare i tiende posisjon. I følge denne undersøkelsen sier 70% av kjøperne at de er klare til å betale mellom $ 2000 og $ 25.000 for anskaffelsen av et DBMS.
Ofte stilte spørsmål fra kjøpere relaterer seg til ytelse, kommandospråkegenskaper, samtidig tilgangskontroll og hvilke typer data som er tilgjengelige. Spørsmålet om ytelse vises ofte øverst på listen over kjøpere og nederst på listen over selgere; det er derfor testing og referanser er vanlig praksis. Egenskapene til SQL-kommandospråket gir informasjon om syntaksen som forespørslene som sendes til DBMS må overholde. SQL-standarden er modifisert flere ganger, det er tre nivåer for samsvar, og SQL-språket som gjenkjennes av hvert DBMS på markedet, ligner på den ene eller den andre av disse forskjellige standardene.
Et mellomstort selskap bruker for tiden flere DBMS-er samtidig, og det er sjelden forventet valg av DBMS, ofte pålagt av ankomsten av applikasjonsprogramvare, og vanskelig å reversere. Noen ganger anskaffer selskapet applikasjonsprogramvare som ikke fungerer på noe av DBMS det allerede eier. Det hender også at et selskap motiverer kjøp av et nytt DBMS ved å ønske å bruke de nyeste og mest fremtredende teknologiene. Det er vanskelig å bytte ut en gammel DBMS med en ny på grunn av manglende kompatibilitet mellom forskjellige produkter - noe som gjør det nødvendig å tilpasse programvaren til nykommeren. Resultatet er at applikasjonsprogramvaren ofte ikke passer, og den gamle DBMS blir fortsatt brukt sammen med de nye produktene.
DBMS-navn | År | Redaktør | Kjennetegn | programvaretype | SQL | Flervurdert | Tillatelse |
---|---|---|---|---|---|---|---|
Apache-derby | 1996 | Apache Software Foundation | innebygd, relasjonell, sentralisert | Programvarekomponent | Apache | ||
DB2 | 1983 | IBM | for bedrifter, arbeidsgrupper, enkeltpersoner | server | Eieren | ||
dBase | 1978 | Ashton-Tate | relasjonell, for enkeltpersoner | L4G | Eieren | ||
FileMaker Pro | 1985 | FileMaker | relasjonell, for arbeidsgrupper | applikasjonsprogramvare | Eieren | ||
4D | 1985 | 4D | relasjonell, for arbeidsgrupper og bedrifter | applikasjonsprogramvare | Eieren | ||
Firebird | nitten åtti en | Firebird Foundation | relasjonelt, sentralisert, ombord, for arbeidsgrupper og bedrifter | server | Interbase | ||
HSQLDB | 2000 | Thomas mueller | relasjonelt, innebygd, sentralisert, for arbeidsgrupper og enkeltpersoner | Programvarekomponent | BSD | ||
HFSQL | 1993 | PC myk | programvarekomponent | Eieren | |||
Informix | nitten åtti en | IBM | for bedrifter, arbeidsgrupper, distribuert | server | Eieren | ||
Ingres | 1974 | Ingres Corporation | relasjonell, romlig, sentralisert, distribuert | server | LPG | ||
Skjult | 1997 | InterSystems | objekt, for selskaper, distribuert | server | Eieren | ||
MariaDB | 2009 | Monty Program Ab | server | LPG | |||
MaxDB | 1977 | SAP AG og MySQL AB | relasjons-objekt, for bedrifter og arbeidsgrupper, sentralisert | programvarekomponent | LPG | ||
Microsoft Access | 1992 | Microsoft | relasjonell, for enkeltpersoner og arbeidsgrupper | L4G | Eieren | ||
Microsoft SQL Server | 1989 | Microsoft | bedrifter, arbeidsgrupper, enkeltpersoner, relasjonelle, distribuerte | server | Eieren | ||
MySQL | 1995 | Oracle Corporation og MySQL AB | sentralisert, innebygd, distribuert, for bedrifter, arbeidsgrupper og enkeltpersoner | server | LPG | ||
OpenOffice.org-base | 2002 | Oracle Corporation | Applikasjonsprogramvare | LGPL | |||
Oracle Database | 1979 | Oracle Corporation | bedrifter, arbeidsgrupper, enkeltpersoner, relasjonelle, romlige, distribuerte | server | Eieren | ||
Paradoks | 1987 | Corel | applikasjonsprogramvare | Eieren | |||
Plukke | 1968 | Velg system | server | Eieren | |||
PostgreSQL | 1985 | Michael Stonebraker , PostgreSQL Global Development Group | server | BSD | |||
SQLite | 2000 | D. Richard Hipp | en del av | bibliotek / programvarekomponent | Offentlig domene | ||
MongoDB | 2007 | MongoDB | Dokumentorientert NoSQL | server | SSPL | ||
Cassandra | 2008 | Apache Foundation | Kolonneorientert NoSQL | Apache 2-lisens | |||
Couchbase | 2010 | Couchbase | Dokumentorientert NoSQL | ||||
Elasticsearch | 2004 | Elasticsearch | NoSQL omvendt indeks | ||||
HBase | 2006 | Hortonworks | Kolonneorientert NoSQL | ||||
Redis | 2009 | Redis Labs | Nøkkelverdi-orientert NoSQL | ||||
Riak | 2009 | Basho Technologies | Nøkkelverdi-orientert NoSQL | ||||
DynamoDB | 2012 | Amazon | Nøkkelverdierettet NoSQL og dokumenter | ||||
Dødsflukt | 2009 | Nøkkelverdi-orientert NoSQL | |||||
Stort bord | 2005 | Kolonneorientert NoSQL | Eieren | ||||
MemcacheDB | NoSQL, i minnet | BSD | |||||
Vertica | 2005 | Kolonneorientert NoSQL | Eieren | ||||
Neo4j | 2010 | Neo-teknologi | NoSQL-orientert graf | GNUv3 og AGPL-3.0 | |||
Oracle NoSQL-database | Oracle Corporation | NoSQL |