729G28 Webprogrammering och databaser Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminogi Webprogrammering och databaser Personal: Examinator Jalal Maleki, jalma@ida.liu.se Ansvarig databasteori: Eva Ragnemalm, eva.ragnemalm@liu.se Ansvarig webprogrammering: Sahand Sadjadee, sahand.sadjadee@liu.se 1 2 översikt Två komponenter: Webprogrammering Databasteori och praktik Delarna förenas i det praktiska arbetet lab 1 Databasspråket SQL lab 2 lägga upp en databas projekt Dynamiska websidor mot databas Praktisk info Organisation: (Fö), le, la, projekt Examination tenta + labb + projekt info och kommunikation 3 4 Ändringar mot förra året HT2 -> HT1 6 veckor istället för 10 veckor för 6hp ungefär 2/3-fart c:a 27 tim/vecka på kursen Projektet förra året ansågs tidskrävande Webprogrammering Webdesign Webprogrammering - ett språk som skapar websidor dynamiskt. Kombination av gamla lab3 och projektet Mer tyngd på labb-examinationen 5 6
Webläsare - webserver 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 7 8 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> 9 10 Dynamiska websidor 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> HTML med PHP-kod Webserver 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 11 12
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 13 14 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) 15 16 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 Konceptuell (begreppsmässig) modell Representationsmodell (implementationsmodell) Fysisk datamodell 17 18
Datamodell Hur vi ser världen Olika nivåer: Konceptuell (begreppsmässig) modell Implementationsmodell Fysisk datamodell 19 20 Entity-Relationship model (ER-modellen) Datamodell: Relationsmodellen Student Världen består av entiteter med samband emellan Epost Ollol345 Student går Namn Adress Annan123 Anna Andersson Rydsv 234 Olle Olsson 729G68 Storgatan 1 732G16 kod 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 21 22 Datamodell: Instans och schema Datamodell: Metadata data om data 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 Schemat är metadata Information om hur och var data lagras Struktur, organisation Tillgänglighet Användningsstatistik 23 24
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' 25 26 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 27 28 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) 29 30
Att designa en databas Datakrav (ur förstudie/specifikation) Utforma konceptuell modell (ER-modell) Förfina till implementationsmodell (relationsmodellen) Implementera i databashanterare (datatyper, organisation mm - fysisk modell) Skriv applikationsprogram 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. 31 32 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 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 33 34 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. 35 36
Attribut: exempel 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 er 729G68, 732G16 Värden I en ER-modell brukar man identifiera fyra slags värden: enkla (ex. anställningsnummer) sammansatta (ex. Adress) multipla (ex. kurser) null 37 38 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 39 40 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 41 42