Webbprogrammering, grundkurs 725G54



Relevanta dokument
Databaser och Datamodellering Foreläsning IV

Webbprogrammering, grundkurs 725G54

Projekt Foreläsning VI

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Webbprogrammering 725G54

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Konceptuella datamodeller

NORMALISERING. Mahmud Al Hakim

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

Universitetet: ER-diagram

Webprogrammering och databaser. 729G28 Webprogrammering och databaser. Kursöversikt. Praktisk info. Webprogrammering. Ändringar mot förra året

TDDD52 Databas. Databas. Databas 1/3/13

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Databaser Design och programmering

Tentamen ISGB01, ISGB24. Databasdesign 7,5 Poäng

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

VAD GÖR DU / VEM ÄR DU?

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

Karlstads Universitet, Datavetenskap 1

WCMS-15, Webbutvecklare CMS

Databaser - Design och programmering

Databaser design och programmering. Design processen ER- modellering

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

Logisk databasdesign

Webbprogrammering - 725G54 PHP. Foreläsning II

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.

729G28 Webprogrammering och databaser. Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminologi

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Övningar i SQL. SQLAccess.doc Ove Lundgren

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

Elektronisk publicering TNMK30

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

SQL. Structured Query Language. Frågespråk för att används för. Kommandon. data åtkomst data manipulation

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema

732G16: Databaser - Design och programmering

Webprogrammering och 729G28 databaser Webprogrammering och databaser Kursöversikt Webprogrammering Designprocessen Lösningsförslag

Databaser. Vad du ska lära dig: Ordlista

Analytisk relationsdatabasdesign

Design och underhåll av databaser

VAD GÖR DU / VEM ÄR DU?

Innehåll MySQL Intro. Ex på ett index Index typer ISAM Balanserat träd Pk och Fk i MySQL Eget index För o nackdelar med index

Sample exam questions. Database exam TIG058

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Databasteknik för D1, SDU1 m fl

Kursutvärdering - rapporterande frågor, UmU:s standardfrågor

Tabeller och kolumner SQL. Lägga till en ny post. Lägga till en ny post

Förra gången. jquery Lab 4 Muddy Cards resultat.

Lite om databasdesign och modellering

Databasdesign. E-R-modellen

Webbprogrammering TDDD52

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Idag. Databaskvalitet(??) Databaskvalitet... Databaskvalitet...

25/11/14. Databasteknik och informationssystem DD1370. Påminnelse inför Lab 1 redovisningen. Repetition: ER modellering (gammalt + nytt)

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Tentamen för DD1370 Databasteknik och informationssystem

Databaser design och programmering. Fö 2: Design processen, ER-modellering

Databaser. Jan Erik Moström, Department of Computing Science, Umeå University - jem@cs.umu.se

On-line produktion TDDC61

INTRODUKTION TILL ER ENTITY-RELATIONSHIP

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

Tentamen plus lösningsförslag

08/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Kursens (återstående) mål Dagens föreläsning

Tentamenskod: Tentamensdatum: Tid: 14:00-19:00. Inga hjälpmedel är tillåtna

Databasteori Övningar

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

Databasteori. Övningar

Tentamen för DD1370 Databasteknik och informationssystem

ER-Diagram. Databasutveckling Diagram

Prova på-laboration i SQL

L0009B. Moment. Introduktion till geografiska databaser: G:\L0009B\Allmänt\IntroGeoDB.pdf (F)

Del 2: ER-modellering och överföring till Databasstruktur v0.9

Föreläsning 6 Databaser och säkerhet

Kursvärdering 1DV405 Databasteknik LP3 2014

Grunderna för relationsmodellen!

Tentamen för DD1370 Databasteknik och informationssystem

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index

Föreläsning 6: Normalisering & funktionella beroenden

Inst. för Data- och Systemvetenskap SU Maria Bergholtz. Tentamen. 21/ kl Inga hjälpmedel är tillåtna (annat än ordbok).

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Elektronisk publicering TNMK30

1DV405 - Databasteknik. Kursintroduktion. Så här är kursen planerad.

Hur tycker du kursen har varit? Tycker du att kursens upplägg har underlättat för dig att uppnå lärandemålen?

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer

Exempel-Tentamen III

Webbprogrammering. Sahand Sadjadee

Webbprogrammering, grundkurs 725G54

Avancerade Webbteknologier

Relationell databasdesign

Transkript:

Webbprogrammering, grundkurs 725G54

Bootstrap jquery SEO RWD MuddyCards. Tidigare

Muddycards Många positiva kommentarer Ibland för högt tempo på föreläsning Lägg ut labbar tidigare Mer föreläsningar (2 st om PHP) Handledning kan i vissa fall bli bättre Mer utspridd handledning Studenter från andra kurser i pul Otydligt om hur man kommer igång Otydligt vem som är labbass G-huset Tung parallell kurs Labbar till 19.

Handledning Tisdagar, 13-17, 3-5 st Onsdagar, 08-10, 0 st Onsdagar, 10-12, 2 st Undantag: Onsdag 29, 8-12, 4 st Torsdagar, 13-15, 3-5 st Torsdagar 15-17, 2-4 st Fyll PUL från lägst nummer - labbass kommer flytta på dem som inte ska vara där.

Labbuppstart Iterativ metod / XP Gör något litet Kolla att det funkar Välj något nytt litet Osv Vattenfall Gör skiss/plan över vad som ska göras Välj ut liten bit att bygga Kolla att det funkar Välj ny bit Osv

Labbuppstart Poängen är att dela upp i mindre delar Känns delarna svåra att hantera så dela upp ytterligare Viktigt att lära sig för problemlösning, programmering, projektarbeten.

Databaser ERD SQL MySQL PHP + MySQL phpmyadmin. Idag

Laboration 4 Börja idag Gästbok eller klotterplank Använd det ni lärt er tidigare + MySQL Validera data från användare med PHP och jquery Föreläsning om jquery-validering som video Deadline: 5/5.

Laboration 5 Gör ERD och tabeller för mindre domän Universitet (student, kurs, lärare, osv) Lager (vara, kategori, hyllplats, order, osv) Filmer (skådespelare, regissör, bolag, osv) eller något annat som passar Mindre uppgift Gör utanför labbtid Om det behövs kan ni ta med till labb för frågor.

Databaser Databas - samling med data Databashanterare Enkelt Kraftfullt Flexibelt Samtidig åtkomst Nackdelar? Kan kräva mer resurser.

ER-modellering Entity-Relationship (Saker-Samband) Konceptuell modell Överskådligt Lätt att kommunicera.

vs 8 tabeller med ~50 kolumner

ER-modellering kardinalitetsförhållanden Person N Bor i M Hus entitetstyp sambandstyp (relationship type) En person kan bo i flera hus och i ett hus kan det bo flera personer.

ER-modellering fullständigt deltagande Person Bor N i 1 N Äger M Hus Alla personer bor i ett hus. I ett hus kan det bo flera personer. Ett hus kan ha flera ägare. En person kan (del-)äga flera hus.

ER-modellering Attribut Förnamn Efternamn Liu-id Namn Nyckel Student Sammansatt attribut En student har ett liu-id, förnamn och efternamn. Liu-id är unikt för varje student.

ER-modellering Härlett attribut Flervärt attribut Medelbetyg Telefon Betyg Film

ER-modellering Attribut på sambandstyp Inköpsår Person N Äger M Hus

ER-modellering Svag entitetstyp Titel Sidantal Bok N Innehåller M Kapitel Alla kapitel finns i någon bok.

Relationsmodellen Data lagras i relationer Samma sak som tabeller med rader och kolumner id namn telefonnr 2 Donatello 555-1234 3 Michelangelo 555-9999 5 Rafael 555-1234 1 Leonardo null null 0

ER-diagram Tabeller id namn telefon Person Person id namn telefon 6 Rocksteady 555-2222 54 Beebop 555-2222

Person id namn telefon 6 Rocksteady 555-2222 54 Beebop 555-2222 Hus gata nummer Storgatan 2 Rydsvägen 240 ägare 54 54 id namn efternamn gata nummer Person 1 N äger Hus

Person Hus id namn telefon 6 Rocksteady 555-2222 54 Beebop 555-2222 gata nummer Storgatan 2 Rydsvägen 240 ägare id 16 6 & 854 Äger person-id hus-id 6 8 54 8 54 1 Dålig lösning id id namn efternamn gata nummer Person N äger M Hus

Normalisering Databasteknik - kap 11. Hur man undviker dålig design på sin databas en typ av sak per tabell, och en sån sak per rad Undvik redundans, att samma sak lagras på flera ställen Gör man ERD först slipper man ofta problem och behöver inte normalisera.

1NF Första normalformen Tabellen ska innehålla atomära värden Det vill säga - högst ett värde per ruta

2NF Andra normalformen 1NF Varje icke-nyckelattribut ska vara fullt funktionellt beroende (ffb) av varje kandidatnyckel

Nycklar Kandidatnyckel eller nyckel - en kolumn, eller en kombination av kolumner, som alltid har ett unikt värde för varje rad i tabellen. Person id namn telefon 6 Rocksteady 555-2222 54 Beebop 555-2222

Beroenden Funktionellt beroende, fb; (functional dependency, fd) - Om B är fb av A så bestämmer A entydigt B, dvs om värdena på A på två rader i tabellen är lika, så måste värdena på B också vara lika. Fullt funktionellt beroende, ffb; (full functional dependency, ffd) - ett förhållande mellan två attribut eller attributkombinationer, A och B i en tabell. Om B är funktionellt beroende av A, och inget attribut kan tas bort ur A om det fortfarande ska vara ett funktionellt beroende, så är B ffb av A.

År Län Landshövdning Födelsedag 2009 Gotland M.Samuelsson 9/12 2004 Östergötland B.Eriksson 7/12 2005 Östergötland B.Eriksson 7/12 2NF Innehåller fortfarande redundant information 1NF Varje icke-nyckelattribut ska vara fullt funktionellt beroende (ffb) av varje kandidatnyckel

3NF 2NF, plus att inget icke-nyckelattribut får vara ffb av något annat icke-nyckelattribut År Län Landshövdning Födelsedag 2009 Gotland M.Samuelsson 9/12 2004 Östergötland B.Eriksson 7/12 Ej 3NF 2005 Östergötland B.Eriksson 7/12

3NF 2NF, plus att inget icke-nyckelattribut får vara ffb av något annat icke-nyckelattribut År Län Landshövding 2009 Gotland 1 2004 Östergötland 2 2005 Östergötland 2 id Namn Födelsedag 1 M.Samuelsson 9/12 2 B.Eriksson 7/12 3NF

SQL Structured Query Language Dominerande språket Ställer frågor - uppmaningar.

Person id namn telefon 6 Rocksteady 555-2222 54 Beebop 555-2222 Hus gata nummer ägare Storgatan 2 54 Rydsvägen 240 54 SELECT * FROM Person; SELECT gata FROM Hus WHERE ägare = 54; SELECT namn FROM Person WHERE id = 6; SELECT namn FROM Person WHERE id = (SELECT ägare FROM Hus WHERE gata = Storgatan AND nummer = 2);

Person id namn telefon 6 Rocksteady 555-4545 555-2222 54 Beebop 555-2222 55 April null INSERT INTO Person (id, namn, telefon) VALUES (55, April, null); DELETE FROM Person WHERE namn = April ; UPDATE Person SET telefon = 555-4545 WHERE id = 6;

MySQL The World s most popular open source database PHP, Perl, Python http://dev.mysql.com

PHP + MySQL Vi kommer använda mysqli MySQL improved Funktioner och dokumentation finns på php.net

Demo

Kom ihåg Använd formulär för lagring i databas <form method= post...> Gör uppkopplingen som include och återanvänd PHP hanterar data och skriver ut Kolla så att ni fått korrekt data Säkerhet - prepared statements Inte addslashes Inte mysql_real_escape_ phpmyadmin Skapa tabeller Ange id till primary key, auto_increment så sköter MySQL indexeringen.

Påminnelse: sql-injection

Laboration 4 Börja idag Gästbok eller klotterplank Använd det ni lärt er tidigare + MySQL Validera data från användare med PHP och jquery Föreläsning om jquery-validering finns som video.

Laboration 5 Gör ERD och tabeller för mindre domän Universitet (student, kurs, lärare, osv) Lager (vara, kategori, hyllplats, order, osv) Filmer (skådespelare, regissör, bolag, osv) eller något annat som passar Mindre uppgift Gör utanför labbtid Om det behövs kan ni ta med till labb för frågor.

Om validering/ återkoppling Ge tydlig, artig och hjälpsam återkoppling på vad som fylls i (eller inte fylls i) Undvik onödig teknisk jargon Förklara vad som är fel och hur det ska åtgärdas Testa och tänk efter vad det kan bli för resultat

Till nästa gång Försök göra klart lab 1-5 Fundera på projekt.

Tack! Lycka till!