Webprogrammering och databaser! Idag: Diverse praktiskt om kursen Webprogrammering Databaser, terminogi Start på ER-modellering! Webprogrammering Kursöversikt! Databasteori och praktik! Fö, le, la + projekt! 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! Beskriv problemet presenttips till givet tillfälle och person! Identifiera lösningsförslag! Utvärdera lösningsförslag! Implementera lösningen Lösningsförslag Webläsare - webserver! Funktioner! Databehov! andra krav! Givet scenario i projektet: Text akdjfgh skljg sldkfg gkldjsfg kldjfhg kdjf dlkfjg kdj f Webläsare Internet Text akdjfgh skljg sldkfg Text akdjfgh skljg sldkfg gkldjsfg Text kldjfhg akdjfgh kdjf dlkfjg skljg kdj sldkfg f gkldjsfg kldjfhg kdjf dlkfjg kdj f gkldjsfg kldjfhg kdjf dlkfjg kdj f Webserver sök present till given person för givet tillfälle (från given givare).
Site-specifik layout Dynamiska websidor! 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> Webläsare Internet Websida <HTML> <HEAD> <TITLE>Dagens datum</title> </HEAD> <BODY> <H1> Dagens datum och tid</h1> <?php echo date("ym-d H:i:s");?> </BODY> </HTML> HTML med PHP-kod Webserver Dynamiska websidor kopplade till databas Webläsare Internet Websida <HTML> <HEAD> <TITLE>Dagens datum</title> </HEAD> <BODY> <H1> Dagens datum och tid</h1> <?php echo date("ym-d H:i:s");?> </BODY> </HTML> Webserver PHP-kod Databasserver Databas Databasteori: definitioner! Data, Databas! Databashanteringssystem! Databasintegritet! Datamodell (ER, Relationsmodell)! Instans, schema, metadata! Databasspråk (ex: SQL) 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 (databashanterare) (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 (databasintegritet) 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! Hur vi ser världen! Olika nivåer: Datamodell Entity-Relationship model (ER-modellen)! Världen består av entiteter med samband emellan Konceptuell (begreppsmässig) modell Implementationsmodell Studenter går Kurser Fysisk datamodell 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 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 Databasspråk! Klass av språk som används mot databaser Databeskrivningsspråk (DDL) Datamanipuleringsspråk (DML) Värdspråk 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 Nackdelar med databasteknik! DBMS tar stor plats! Overhead ger längre svarstider! Ibland krångligt att lära sig hantera 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)
Att designa en databas! Datakrav (ur lösningsförslaget)! Utforma konceptuell modell (ER-modell)! Förfina till implementationsmodell (relationsmodellen)! Implementera i databashanterare ER-modellen! Enligt ER-modellen består en domän av entiteter (saker) som har samband med varandra Varje entitet har ett antal attribut och varje attribut har ett visst värde.! Skriv applikationsprogram Entitetstyp! En typ av företeelse som behöver representeras.! En individ av den typen är en entitetsinstans Entitetsinstans Anna Axelsson Globen Databaser - design och prog. Nokia AB E=MC 2 Entitetstyp Person Byggnad/hus Kurs Företag Idé Sambandstyp! Representerar ett förhållande mellan två eller flera entitetstyper.! Om entitetsinstanserna kan höra ihop finns det en sambandsinstans mellan dem. Sambandstypen är mängden av sådana sambandsinstanser. Ex: studenter som går kurser: Går-kurs är en sambandstyp ER-modell, notation! ER-modeller beskrivs oftast i diagramform. Går Attribut! De egenskaper hos entitetstyper som vi är intresserade av representeras som en entitetstyps attribut.! Varje attribut har en domän (värdemängd) som anger de tillåtna värdena för attributen.
Attribut: exempel Värden! Läraren Anna Axelsson kan t.ex. beskrivas som följande entitet: Attribut Namn Anställningsnr 234 Adress Attributvärde Anna Axelsson Studentvägen 8, 1tr Telefon 011-121212 Kurser 729G68, 732G16! I en ER-modell brukar man identifiera fyra slags värden: enkla (ex. anställningsnummer) sammansatta (ex. Adress) multipla (ex. kurser) null Nyckelattribut! Identifiering av nyckelattribut ingår i ERmodellering och databasdesign. Ett attribut med unika värden för varje instans av en entitetstyp kallas nyckelattribut Om inget attribut ensamt är unikt för varje instans? Flera tillsammans (gör sammansatt). markeras i ER-diagrammet med understrykning av attributnamnet Sambandstyper: kardinalitet! Specificerar antalet sambandsinstanser av en viss typ som en entitetsinstans kan ingå i.! För binära sambandstyper (siffran skrivs vid respektive entitetstyp i diagrammet): en-till-en (1:1) en-till-många (1:N) många-till-en (N:1) många-till-många (M:N)! Kardinalitet för flervägssamband uttrycks i ord Sambandstyper: deltagande! specificerar om en entitetsinstans måste ha ett samband via sambandsinstansen.! Om alla entiteter av en viss typ måste delta i ett samband av den typen kallas det fullständigt deltagande.! Om alla entitetsinstanser inte måste delta i en sambandsinstans gäller partiellt deltagande. Ritas i diagrammet som dubbelstreck mellan entitetstyp och sambandstyp. ER-diagram, exempel