Vad är en databas?

“En databas är en delad samling logiskt relaterade data
som designats för att möta informationsbehovet i en
organisation eller för en produkt.”

Var finns databaser? (användningsområden – överallt)
◦
◦
◦
◦
◦
◦
Köp i affär och användning av kreditkort
Boka en resa hos en researrangör
Låna och söka böcker på ett bibliotek
Teckna en försäkring
Studera på Högskola
Använda internet
1
Filbaserade system

Filbaserade system var ett tidigt försök till
att datorisera manuella filsystem
◦ Produkter, uppgifter, klienter, anställda osv…
◦ Recept, garantier, bankärenden osv…

Varje program definierar och styr sin egen
data.
Varför DB?
Metadata (data om data)
 program- och dataoberoende
 Datamodell / dataabstraktion
 högnivå språk för hantering av databasen
 multipla vyer av samma data
 effektivt sökning/åtkomst av stora
datamängder

Database Management System DBMS
Tillåter användare att skapa nya databaser och
specificera schema (dvs logiska beskrivningar av
data)
 Ger användare möjligheten att ställa frågor, lägga
till eller ta bort data
 Stödjer lagring av stora mängder av data
(gigabytes, terabytes) över en längre tidsperiod
 Har säkerhetsrutiner för att hålla databasens
innehåll konsistent
 Kontrollerar åtkomst
 Tillåter flera användare att använda och ändra
databasen samtidigt (transaktionshantering)

Funktioner i ett DBMS










Datalagring, åtkomst och uppdatering
En användarkatalog (user-accessible catalog)
Transaktionshantering (transaction support)
Ett kontrollsystem för samtidig data
(concurrency control services)
Ett Backup och återställningsystem (recovery services)
Behörighetskontroll (Authorization services)
Datakommunikationssupport (Data communication)
Ett säkerhetssystem för data (integrity services)
Service för Dataoberoende (Data independence)
Utility services.
5
DDL & DML
Data Definition Language (DDL) - tillåter användare
att specificera de datatyper, den struktur och de
restriktioner som gäller för data lagrat i databasen.
 Data manipulation Language (DML) - tillåter
användare att lägga till, uppdatera, ta bort och hämta
data från databasen.
 Procedurell DML - användaren specificerar vilken
data som begärs och hur man kommer åt det
 Icke-procedurell DML - användaren specificerar
vilken data som begärs utan att specificera hur man
kommer åt det

SQL - Structured Query Language

Standardiserat frågespråk. Används för:
◦ att definiera scheman, ge typer och
integritetsvillkor (DDL).
 varchar(n): strängar av längd högst n.
 int: heltal
 date: datum, angivna som t ex date ’2010-03-20’.
◦ att uttrycka frågor och uppdateringar (DML).
 SELECT * FROM student
WHERE program = ’MMD’;
DB





Entiteter - (objekt) kan vara t ex vara kunder,
beställningar eller leverantörer.
Attribut - (egenskap) t ex kundnummer,
kundnamn och adress för ett objekt Kund.
Relationer - hur relaterar eller förhåller
entiteter sig till varandra (1-1, 1-M eller M-M)?
Primärnyckel - unik identifierare i en tabell
Främmande nyckel - värdet på en primärnyckel i
en annan tabell
DB
Vyer
View mechanism - varje användare kan ha
sin egen vy av databasen.
 Views (Vyer) - är en bild av en del av DB

◦ Säkerhetsaspekt - Exkludera data som vissa
användare ej ska ha tillgång till.
◦ Individanpassning av utseendet på DB
◦ Pressenterar en oföränderlig bild av
databasstrukturen även om den underliggande
databasen ändras.
Databasmiljö
11
ANSI/SPARC modellen
12
ANSI/SPARC modellen
Externt skikt


Användarens vy av databasen. Denna nivå beskriver
den delen av databasen som är relevant för en viss
användare.
Varje användare har ett språk till sitt förfogande:
◦ Programmeraren bygger applikationer i C, Java etc.
◦ Slutanvändaren använder någon form av frågespråk, tex
SQL.
◦ Databasadministratören måste kunna en hel uppsättning
språk och verktyg.
13
ANSI/SPARC modellen
Konceptuellt skikt
Den konceptuella nivån beskriver alla data som
är lagrade i databasen och dess relationer.
 Den konceptuella vyn representerar hela
databasens informationsinnehåll. Tex en samling
förekomster av artiklar och ett antal
förekomster av leverantörsposter.
 Här definieras även säkerhetskontroller och
integritetskontroller som kommer att gälla i
databasen.

14
ANSI/SPARC modellen
Internt skikt
Den fysiska representationen av data i datorn.
Denna nivå beskriver hur data lagras i
databasen.
 Den interna vyn beskrivs med hjälp av det
interna schemat som inte bara definierar olika
posttyper som skall lagras utan även vilka index
som skall finnas, hur lagrade fält skall
representeras, etc.

15
Ett exempel: Skikten i ANSI/SPARC
modellen
16
Dataoberoende i ANSI/SPARC
modellen
17
Mapping
Förhållandet mellan det externa, konceptuella
och interna schemat kallas för mapping.
 Mappingen binder samman de olika nivåerna,
oavsett namn på data:

◦ Logiskt dataoberoende - externa scheman är immuna
mot förändringar i det konceptuella schemat.
◦ Fysisk dataoberoende - konceptuella scheman är
immuna mot ändringar i det interna schemat.
18
Datamodeller

Objektbaserade datamodeller - används för att
beskriva data på logisk och vy nivå.
◦ Entity-Relationship
◦ Objektorienterad

Postbaserade datamodeller
◦ Relationell datamodell - Bygger på entiteter, attribut och
relationer.
◦ Nätverksdatamodell - Posterna i databasen är
organiserade som samlingar av godtyckliga grafer
◦ Hierarkiskdatamodell - posterna är organiserade som
samlingar av träd

Fysiska datamodeller - kan användas för att
beskriva hur data lagras fysiskt
19
Konceptuell modellering
Det konceptuella schemat är kärnan i systemet
och understöder alla användarvyer
 Bör vara en komplett och noggrann
representation av en organisations databehov
 Konceptuell modellering är processen att
utveckla en modell av informationsanvändning
oberoende av implementeringsdetaljer
 Resultatet blir en konceptuell datamodell.

20
Fleranvändararkitekturer
File-server
 Client-Server
 Web service

21
File-Server arkitektur
Tillhandahåller delat utrymme för data som ex: dokument, bilder och
databaser
22
Client-Server arkitektur
Klienten skickar begäran till servern om exempelvis databasåtkomst,
serverbaserad programvara eller dylikt
23
Web Services
Webbaserad mjukvara som kommunicerar och samarbetar med andra
webbtjänster