Databaser -­‐ Design och programmering
Eva L. Ragnemalm, IDA ([email protected])
Fö 1; introduktion Kursen, diverse praktiskt Varför databaser? Vad är en databas? Andra viktiga begrepp
2
Kursöversikt
• Teori och praktik
–Kursbok, lektionshäfte, Föreläsningar (4hp)
–lektioner, sammanhängande labbserie
(3,5hp=100h)
• Examination (tenta, labbserie)
–Datum för inlämningar/demo se kurshemsidan.
3
Labbuppgifterna fokuserar på utredning
• Analysera data om studenter
–Finns det samband mellan antagningspoäng
och hur många poäng man tar vid högskolan?
–Skiljer det sig för obligatoriska kurser och
valbara?
–Skiljer det sig för olika program?
• Designa databas, implementera den (SQL), lägga
in data (R), manipulera data (SQL), analysera data
(R).
4
Schema i terminsslutet
Må
Ti
On
v 21
24/5 Deadline Surveymet
v22
31/5 Slutsem Surveymet
v23
5/6 Fö
6/6 Repetition National-­‐
dag
To
Fr
25-­‐26/5 Kristi himmelsfärd
2/6 Demo labserien
8/6 Tenta
5
Varför databaser?
• Varför ni?
• Varför överhuvudtaget?
–Vaddå enklare?
6
Exempel: telefonbok
• I vanligt pgmmeringsspråk, exJava:
class person implements serializable
{
private String name:
private int telnr;
....
public int getTelnr()....
....
for (i=0; i<pList.size() ;i++) ....
int tnr= getTelnr();
7
Telefonbok, forts
• Med databasspråket SQL:
Skapa databasen
create table person (
name varchar(20), telnr int);
• Lägga in data: insert into person values (‘Anna’,
234456)
• Söka Annas telefonnummer:
select telnr from person where namn='Anna';
8
Telefonbok, forts
• SQL:
För att ändra:
alter table person modify telnr varchar(12);
• För snabbare sökning: index
create index nrIndex on
person(telnr);
• Logiskt och fysiskt dataoberoende
9
Tillgänglighet, säkerhet
Namn
Adress
Telefon
Betyg
Klar
Anna Andersson
Studentv 23
1234456
G
J
Oskar Oskarsson
Rydsv 987
77656565 -­‐
N
Namn
Adress
Telefon
Anna Andersson
Studentv 23 1234456
Oskar Oskarsson
Rydsv 987
77656565
10
Databas
• En databas är en samling data som:
–Har med varandra att göra
–Representerar (modellerar) en del av
verkligheten för ett specifikt ändamål
–Är beständig (finns kvar)
–Har en strikt struktur som beskrivs i ett
schema
–Inte innehåller motsägelser
–Lagras på dator
11
Databashanteringssystem (DBMS)
• Ett programsystem som
–Hanterar flera databaser
–enligt en datamodell
–med hjälp av ett databasspråk
–Kan anropas från applikationsprogram
12
Hantera databaser
• Skapa nya databaser
• Manipulera data (lägga till, ta bort, läsa ut)
• Säkerhet, åtkomst enskilt och samtidigt
• Säkerhet, återställning vid krasch
• Kontrollera korrekthet (integritet)
13
Hantera databasen: Databasintegritet
• Informationen i en databas måste vara korrekt!
–Rätt typ och rätt struktur, ett av en mängd
–Värden som måste fyllas i
–Överensstämmelse med andra värden
• Korrekthetsvillkor i db: integritetsvillkor
• Formuleras av db-administratören mha olika
mekanismer i DBHS
14
Säkerhetsfunktioner
• Kontrollera integritetsvillkor
• Skydda data
• Återhämtning vid fel i hård/mjukvara
• Hantera samtidig åtkomst mot flera användare
15
Datamodell
• Hur vi ser världen
• Olika nivåer:
–Konceptuell (begreppsmässig) modell
–Representationsmodell
(implementationsmodell)
–Fysisk datamodell
16
17
Datamodell
• Hur vi ser världen
• Olika nivåer:
–Konceptuell (begreppsmässig) modell
–Representationsmodell
(implementationsmodell)
–Fysisk datamodell
18
Datamodell: Representationsmodeller
• Relationsmodellen
• Hierarkisk modell
• Nätverksbaserad
• Objektorienterad
19
Datamodell: Relationsmodellen
Student
Epost
Namn
Adress
Kurs
Annan123
Anna Andersson
Rydsv 234
729G68
Ollol345
Olle Olsson
Storgatan 1
732G16
Kurs
Kurskod
Namn
Läsår
Poäng
729G68
Databaser
07/08
7.5
732G16
Databaser
07/08
7.5
TTIT03
Introduktion till PBL
07/08
2
20
Datamodell: Instans och schema
• Databasen och dess beskrivning
• Instans = den samling data som finns i databasen
vid en viss tidpunkt.
• Schema=beskrivning av databasen enligt någon
datamodell. Förändras sällan.
• Instansen måste följa schemat.
• Schemat lagras i databasen
21
Datamodell: Metadata – data om data
• Schemat är metadata
• Information om hur och var data lagras
• Struktur, organisation
• Tillgänglighet
• Användningsstatistik
22
Datamodell: Metadata -­‐ exempel på användning
• Användare:
–Vilken information finns i databasen
–Kostnaden för att ta fram info Y
• Databasadministratören:
–Hur mycket utnyttjas olika delar?
–Vilka svarstider har vanliga frågor?
–Har någon försökt knäcka säkerheten?
–Behövs optimering?
23
Databasspråk
• Klass av språk som används mot databaser
–Databeskrivningsspråk (DDL)
–Datamanipuleringsspråk (DML)
–Värdspråk
24
Databasspråk: DDL
• Används av databasadministratören för att
utforma databasen (designa), och vid behov
modifiera den efter driftsättning
25
Databasspråk: DML
• Används av databasanvändarna och
applikationsprogrammerare för att manipulera
data:
–Hämta
–Lägga till
–Ta bort
–Förändra
• Kallas frågespråk
26
Databasspråk: Exempel: sql
• Create table person (pnr varchar(10)
not null, namn varchar(30), adress
varchar (30),
primary key(pnr))
• Update person
set adress 'Studentvägen 10'
where pnr='7012120123'
• Select namn from person
where pnr='7012120123'
27
Applikationsprogram
• Specialiserade program som gör användningen av
databasen enklare för slutanvändare
• Specifik användargrupp och specifikt
användningsområde
• Ex resebyråns flygplansbokning
28
Fördelar med databasteknik
• Självbeskrivnande
• Dataoberoende
• Stöder multipla vyer
• Säkerhetssystem (integritet, tillgänglighet,
loggning)
• Stöder och reglerar samtidig användning
• Motverkar redundans
29
Nackdelar med databasteknik
• DBMS tar stor plats
• Overhead ger längre svarstider
• Ibland krångligt att lära sig hantera
30
När ska man inte använda DBMS
• Små mängder data
• Enstaka användning av data som sedan blir
föråldrat/förkastat
• Enkel användning som aldrig ändras
• Om systemet måste ta liten plats
• Om systemet måste garantera korta svarstider
(processövervakning etc)
31
Summering viktiga termer
• Databas
• databashanterare, dataoberoende
• databasintegritet
• datamodell (3 nivåer) ER-modell, relationsmodell
• Instans, schema, metadata
• Databasspråk, DDL, DML, SQL
• Applikationsprogram
Frågor? http://www.ida.liu.se/~732G16 [email protected]
www.liu.se