Det här är ett avsnitt i Generell
databashantering - en orientering
Introduktion till databaser och databashanterare
Vad är en databas ?
Först data, som är uppgifter av olika slag:
- data
23 är ett exempel på data
- händelser
är data som beskriver ett skeende
det är en händelse när någon köper ett par skor i en
affär
- information
är data som man gett en tolkning
det är information att veta att det är 23 grader varmt ute
- kunskap
är "kunskapsbaserade system"
kunskap är anvisningar om beteende, exempelvis regler för hur datorn ska dra
slutsatser.
En databas är:
- samling av data och händelser som
- hör ihop enligt bestämda regler och som
- modellerar en del av världen
till exempel ett företag och dess verksamhet
- persistent
försvinner inte när man går hem eller t.ex. stänger av datorn
Databasteknik brukar innehålla:
- schema
det ska finnas en explicit beskrivning av vad det är för data
- vara konsistent eller logiskt koherent
det får inte finnas motsägelser, eller databasteknik bygger på en matematisk
grund
En databas har ingenting med en dator att göra !
Men i det följande kommer vi att anta att databasen lagras och hanteras av en
dator
Observera att datorisera en databas inte självklart är en fördel
Vad är en databashanterare?
Om man vill datorisera en databas finns det flera olika alternativ:
- Första alternativet är för det mesta att ha en eller flera vanliga
filer med data, kanske text- eller ordbehandlingsfiler
- Sedan kanske man börjar använda ett kalkylark som t.ex. Excel
- Man kan skriva ett program, i något vanligt programmeringsspråk som C eller
Java, och låter det programmet hantera datafiler
Men det bästa alternativet när man datoriserar en databas är
oftast att använda speciella program som har till uppgift att lagra och
hantera databaser
Ett sådant program kallas för databashanterare
På engelska heter det database management system och förkortas DBMS
Databashanterare är mycket stora och komplicerade, och är egentligen hela
system av olika program
Kända exempel på databashanterare är:
DB2 från IBM, Informix, INGRES, InterBase, Paradox
från Borland (fd Inprise), Microsoft Access, Microsoft SQL Server,
MySQL, ObjectStore, Oracle och Postgres.
Språkförbistring:
Det finns väldigt många, både kända och okända, dyra
och billiga databashanterare
Kanske därför används termer och definitioner på ett ibland slarvigt
sätt och t.o.m. med lite olika betydelser
Exempelvis används ordet "databas" ofta för att beteckna det som vi här kallar
för "databashanterare"
Ordet "databassystem" används ibland för att beteckna det som vi kallar för "databashanterare",
och ibland för kombinationen av det vi kallar "databas" och "databashanterare"
Också orden "data" och "information" används och tolkas på olika sätt,
vilket är förvillande
Ytterligare viktiga samt mera matematikska definitioner kan också vara olika
Förutom kommande material refereras också till ordlista
Databashanterare - varför?
Om man vill datorisera en databas finns det som sagt flera olika alternativ vilka
fungerar,
men det finns många fördelar med att i stället använda en databashanterare
De viktigaste fördelarna är att det är:
- enkelt
databashanterare erbjuder ett användarvänligt gränssnitt, ofta grafiskt
och utan programmering
- kraftfullt
komplicerade saker går att göra på ett enkelt sätt databashanterare innehåller
ett system av olika program, eller generatorer
vanliga databas-verktyg för inmatning, sökning och presentation
ect. finns
- flexibelt
att ett system är flexibelt betyder att det är lätt att ändra dvs. lätt
att ändra strukturen i databasen anpassa det till verkligheten vid förändringar
t.ex. en databas som håller reda på produktion och en ny fabrik
byggs Att det går att ändra den logiska strukturen på datat så här, utan att
man måste skriva om en massa program, kallas logiskt dataoberoende
- säkerhet
data skyddas automatiskt för inmataningsfel och mänskliga misstag
De flesta databashanterare har mekanismer för att ge olika användare olika
rättigheter i databasen, och för att skydda data mot obehörig åtkomst
Till exempel kan man ge en användare rätt att ändra i vissa delar av databasen
och att söka i andra delar, medan hon inte alls får se andra delar av databasen
- fleranvändarsystem
databashanterare möjliggör samtidig åtkomst av data
Vad händer om flera personer samtidigt håller på och ändrar i kundregistret
?
Då är det lätt hänt att en person skriver över ändringar som en annan person
gjort
Databashanteraren ser till att det inte blir några skadliga krockar
- krascher
databashanterare möjliggör återställande efter krascher
Vad händer om strömmen plötslig går, så att datorn "tappar minnet"? Om ens
program läser in datafilen i primärminnet, och skriver tillbaka filen när
man jobbat klart, blir man kanske av med alla de ändringar man gjort. Och
ännu värre: om man precis höll på att spara när strömmen gick, kanske en del
av de data som finns på disken är de nya, och en del är de gamla, och man
vet inte vilka som är vilka. I värsta fall får man kasta bort hela datafilen!
Med en databashanterare slipper man sådana problem Den ser till att inga data
någonsin försvinner, hur olyckligt ett strömavbrott än skulle komma
- Användare
databashanterare gör det lättare att möta olika användares behov
Olika användare kan ha helt olika behov, även om de arbetar med samma data.
En databashanterare erbjuder ofta flera olika gränssnitt, dvs sätt
för användaren att kommunicera med databasen
Man brukar också kunna definiera olika vyer. En vy är ett sätt att
se databasen
- andra fördelar
Det finns flera saker som är mycket besvärliga att få att
fungera
om man skriver ett program själv, men som finns inbyggda från början
i de flesta databashanterare
Nackdelar med databashanterare
Databashanterare passar inte för alla tillämpningar. Exempelvis brukar all enkelheten
och flexibiliteten som vi pratade om ovan, göra att en databashanterare kräver
mer resurser än ett specialskrivet program. Det går alltså åt mer minne och diskutrymme.
Kanske går det också långsammare att köra, speciellt kanske över PC-nätverk.
Å andra sidan kan vissa saker i en lösning med databashanterare i stället
gå mycket fortare än ett specialskrivet program! Orsaken är att databashanteraren
innehåller avancerade datastrukturer och algoritmer, som man sällan orkar ta
med i det specialskrivna programmet.
De viktigaste begreppen:
De viktigaste begreppen från det här avsnittet finns också med i
ordlistan:
data,
information,
kunskap,
databas,
databashanterare
(DBMS),
schema,
datamodell,
SQL,
fråga,
frågespråk,
logiskt dataoberoende,
fysiskt dataoberoende,
tre-schema-arkitekturen,
gränssnitt,
vy,
konceptuell datamodell,
implementationsmodell,
relationsmodellen,
DBA,
applikationsprogram,
applikationsprogrammerare,
datakatalog,
meta-data