Webprogrammering och databaser Eva L. Ragnemalm
LiU
Webprogrammering och databaser
!
Idag:
!
Diverse praktiskt om kursen
!
Webprogrammering
!
Databaser
Webprogrammering och databaser Eva L. Ragnemalm
LiU
Kursöversikt
!
Webprogrammering
!
Databasteori och praktik,
!
Examination (tenta, dugga + labb, projekt).
Datum för inlämningar se kurshemsidan.
Webprogrammering
!
Webdesign
!
Webprogrammering - ett språk som skapar websidor dynamiskt.
Designprocessen
!
Studera användarna och deras problem
!
Formulera problem
– presenttips till givet tillfälle eller typer av presenter
!
Identifiera lösningsförslag
!
Utvärdera lösningsförslag
!
Implementera lösningen
Webprogrammering och databaser Eva L. Ragnemalm
LiU
Lösningsförslag
!
Funktioner
!
Databehov
!
andra krav
!
(som stöd för aktiviteterna:
– sök present till given person
– sök present av given kategori)
Webprogrammering och databaser Eva L. Ragnemalm
LiU
Designtips för nätet
!
Man läser inte, man söker
!
Man tar inte den bästa, man tar den första som verkar rimlig
!
Man räknar inte ut hur det fungerar utan använder det som fungerar
! (Källa: Don’t make me think, Steve Krug, 2006)
!
Search vs browse
Statiska websidor
!
Sidan hämtas från webserver
!
Byggs upp av strukturerad text med styrande element; HTML-kod
!
Websidor presenteras för läsaren via webläsare (browser)
Webläsare - webserver
Webläsare Internet
Webserver
Text akdjfgh skljg sldkfg dklsfjg kdljfg kldjfg dklsjf gkldjsfg kldjfhg kdjf dlkfjg kdj f
Text akdjfgh skljg sldkfg dklsfjg kdljfg kldjfg dklsjf gkldjsfg kldjfhg kdjf dlkfjg kdj fText akdjfgh
skljg sldkfg dklsfjg kdljfg kldjfg dklsjf gkldjsfg kldjfhg kdjf dlkfjg kdj f Text akdjfgh skljg sldkfg dklsfjg kdljfg kldjfg dklsjf gkldjsfg kldjfhg kdjf dlkfjg kdj f
Webprogrammering och databaser Eva L. Ragnemalm
LiU
Site-specifik layout
!
När många sidor hänger ihop vill man gärna ha gemensam stil, bakgrund, layout osv.
!
Cascading Style Sheets (CSS)
<style type="text/css">
body {
color: purple;
background-color: #d8da3d } </style>
Webprogrammering och databaser Eva L. Ragnemalm
LiU
Dynamiska websidor
!
Sid-innehåll skapas med hjälp av
programkod (t.ex. i PHP) på en websida.
!
PHP-koden “körs” av webservern innan sidan skickas iväg.
!
Resultatet av php-koden blir (delar av) websidan.
Dynamiska websidor
Webläsare Internet
Webserver
Dagens datum Dagens datum och tid 2009-11-02 9.00
<HTML>
<HEAD>
<TITLE>Dagens datum</TITLE>
</HEAD>
<BODY>
<H1> Dagens datum och tid</H1>
<?php echo date("Y- m-d H:i:s");
?>
</BODY>
</HTML>
HTML med PHP-kod
Dagens datum Dagens datum och tid 2009-11-02 9.00
Websida
Mer om det tekniska
!
Kommer på lektion/labb
!
Finns på nätet: webkurs, tutorials,
manualer mm (“Litteratur)
Webprogrammering och databaser Eva L. Ragnemalm
LiU
Definitioner
!
Data, Databas
!
Databashanteringssystem
!
Databasintegritet, referensintegritet
!
Datamodell (ER, Relationsmodell)
!
Instans, schema, metadata
!
Databasspråk (ex: SQL)
Webprogrammering och databaser Eva L. Ragnemalm
LiU
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
Databashanteringssystem DBHS (DBMS)
!
Ett programsystem som
– Hanterar flera databaser
– enligt en datamodell
– med hjälp av ett databasspråk
– Kan anropas från applikationsprogram
Hantera databaser
!
Skapa nya databaser
!
Manipulera data (lägga till, ta bort, läsa ut)
!
Kontrollera åtkomst enskilt och samtidigt
!
Återställning vid krasch
!
Kontrollera korrekthet (integritet)
Webprogrammering och databaser Eva L. Ragnemalm
LiU
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
Webprogrammering och databaser Eva L. Ragnemalm
LiU
Datamodell
!
Hur vi ser världen
!
Olika nivåer:
– Konceptuell (begreppsmässig) modell
– Representationsmodell (implementationsmodell)
– Fysisk datamodell
Datamodell
!
Hur vi ser världen
!
Olika nivåer:
– Konceptuell (begreppsmässig) modell
– Representationsmodell (implementationsmodell)
– Fysisk datamodell
Datamodell:
Representationsmodeller
!
Relationsmodellen
!
Hierarkisk modell
!
Nätverksbaserad
!
Objektorienterad
Webprogrammering och databaser Eva L. Ragnemalm
LiU
Datamodell:
Relationsmodellen
Epost Namn Adress Kurs
Annan123 Anna Andersson Rydsv 234 729G68 Ollol345 Olle Olsson Storgatan 1 732G16 Student
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 Kurs
Webprogrammering och databaser Eva L. Ragnemalm
LiU
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
Datamodell:
Metadata – data om data
!
Schemat är metadata
!
Information om hur och var data lagras
!
Struktur, organisation
!
Tillgänglighet
!
Användningsstatistik
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?
Webprogrammering och databaser Eva L. Ragnemalm
LiU
Databasspråk
!
Klass av språk som används mot databaser
– Databeskrivningsspråk (DDL)
– Datamanipuleringsspråk (DML)
– Värdspråk
Webprogrammering och databaser Eva L. Ragnemalm
LiU
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'
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
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
Webprogrammering och databaser Eva L. Ragnemalm
LiU
Nackdelar med databasteknik
!
DBMS tar stor plats
!
Overhead ger längre svarstider
!
Ibland krångligt att lära sig hantera
Webprogrammering och databaser Eva L. Ragnemalm
LiU
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)
Summering
!
Databas
!
databashanterare
!
databasintegritet
!
datamodell (3 typer) ER-modell, relationsmodell
!
Instans vs schema, Metadata
!