Utveckling av webbapplikationer med.net, DVA213 (1 av 5) TENTAMEN Utveckling av webbapplikationer med.net, DVA213, 15/08/12 kl. 8:10-12:30 Ansvariga lärare: Afshin Ameri, Dag Nyström Max poäng: 60p Betygsgränser: 3: 30p, 4: 40p, 5: 50p Hjälpmedel: - Påbörja varje uppgift på ett nytt papper! Lycka till! Begreppsdel (23p) Uppgift 1 (5p) Databaser Generellt a) Man brukar dela in databaser enligt en 3-schema arkitektur (ANSI/SPARC). Vilka är dessa scheman, och vad representerar var och en av dem? b) Förklara fördelarna med denna uppdelning. Uppgift 2 Transaktioner och samtidighet a) Beskriv de egenskaper som karaktäriserar en transaktion. b) Vad är syftet med två-fas commit protokollet? Beskriv hur det fungerar. Uppgift 3 Webbapplikationer generellt a) Förklara och exemplifiera begreppen fet klient och tunn klient. Är en webbapplikation en fet eller tunn klientapplikation? b) Vad är en skriptmotor (scripting engine)? Diskutera hur en skriptmotor fungerar på en webb-server och ge ett exempel. Uppgift 4 Fysisk databasdesign a) I databaser används ofta index. Vad är ett databasindex och varför behöver man det? b) Två vanliga index är B+träd och T-träd, förklara kort hur dessa fungerar, samt beskriv skillnaderna mellan dessa. Uppgift 5 (6p) ASP.NET a) Vad är Session-objektet i ASP.NET och vad gör det? Hur kan vi använda det i ASP.NET applikationer och vad använder vi det till? Ge ett exempel. b) Vad är ViewState-objektet i ASP.NET och vad gör det? Hur skiljer det sig från Sessionobjektet?
Utveckling av webbapplikationer med.net, DVA213 (2 av 5) Problemdel (37p) Uppgift 6 (10p) Normalisering En databas innehåller följande tabell med förteckningar över aktieägande: Pnr Namn Postnr Stad Aktiekortnamn Aktietyp Bolag Antal Kurs 7801064568 Kalle 72219 Västerås SCV A Scania 100 115.80 7801064568 Kalle 72219 Västerås ERIC A Ericsson 1000 62.20 7801064568 Kalle 72219 Västerås ERIC B Ericsson 1200 62.45 7907061234 72470 Västerås TEL2 A Tele2 23 128.30 7907061234 72470 Västerås SCV B Scania 500 117.60 8109062345 Lisa 67033 Åmål ERIC B Ericsson 120 62.45 8109062345 Lisa 67033 Åmål TEL2 B Tele2 230 109.80 5510211891 Olof 450 10 Borås SCV B Scania 950 117.60 Tabellens primärnyckel består av Personnummer, Aktiekortnamn och Aktietyp. Aktier finns i de två aktietyperna A och B, och kortnamnet tillsammans med aktietypen avgör en aktie unikt. Staden bestäms som vanligt av postnumret. Antal definierar hur många aktier en person äger av en viss a. Kursen för en viss aktie är alltid samma för alla ägare vid varje tidpunkt. a) Identifiera tabellens funktionella beroenden. Använd till exempel pilar till och från attributen i tabellen. (5p) b) Bestäm den aktuella tabellens normalform, motivera ditt svar. (1p) c) Normalisera tabellen till 3NF-tabeller
Utveckling av webbapplikationer med.net, DVA213 (3 av 5) Uppgift 7 (7p) Databasfrågor En databas innehåller följande 2 tabeller med personer och deras tidningsprenumerationer på tidningarna Svenska Dagbladet (SVD), Dagens Nyheter (DN) och Västmanlands Läns Tidning (): PERSON Pnr Namn 7801064568 Kalle 7907061234 8109062345 Lisa 5510211891 Olof 4405042583 Britta PRENUMERATION Pnr Tidning 7801064568 SVD 7801064568 7907061234 DN 7907061234 SVD 7907061234 5510211891 DN 5510211891 4405042583 a) Skriv en SQL-fråga som returnerar namn och tidning för alla prenumerationer, dvs. returnera följande tabell: Namn Kalle Kalle Olof Olof Britta Tidning SVD DN SVD DN b) Skriv en SQL-fråga som returnerar hur många tidningar var och en av personerna prenumererar på. Notera att Lisa inte prenumererar på någon tidning alls. Resultatet av frågan skall alltså bli: (5p) Namn -- Kalle 2 3 Lisa 0 Olof 2 Britta 1
Utveckling av webbapplikationer med.net, DVA213 (4 av 5) OBSERVERA: För uppgift 8 och 9 behöver du inte kunna de exakta namnen på taggar, kommandon, metoder och attribut. Om du känner till att det finns en mekanism, till exempel en metod, som du behöver kan du referera till den med pseudokod eller liknande. Uppgift 8 (8p) XHTML Utveckling a) Du har börjat arbeta på ett webbdesignföretag. Din första uppgift är att utveckla en loginsida för en kunds webbsida. Du får inte använda ASP.NET i projektet utan endast XHTML och JavaScript. Skriv koden som krävs för att skapa följande sida och skicka informationen tillbaka till servern. Du behöver inte överväga säkerhet för den här uppgiften. Antag också att serverdelarna redan är implementerade. Loginsidan ska se ut så här: b) Som en del av samma uppgift behöver du utveckla ett system för att hämta glömda lösenord. Kunden vill att systemet fungerar så här: När en användare klickar på forgot your password -länken öppnas ett nytt litet fönster på samma html sida (inte ett nytt webbläsarfönster). Fönstret frågar efter användarnamn och svaret på en hemlig fråga och skickar dessa tillbaka till servern. Hur skulle du implementera detta? Visa bara klientsidan av programmet och ange vilka teknologier som du vill använda.
Utveckling av webbapplikationer med.net, DVA213 (5 av 5) Uppgift 9 (12p) ASP.NET Utveckling Föreställ dig att du arbetar med en nyhetsbyrås webbplats. Webbplatsens huvudsida består av flera olika paneler. Nedanstående bild visar en liknande webbplats taget från BBCs webbplats. Din uppgift är att implementera nyhetspanelen (se bilden). Panelen skall visa de senast inkomna nyheterna utan att uppdatera hela sidan. Scrollable headlines News Panel a) Hur ska vi implementera nyhetspanelen så att följande funktionalitet uppfylls: När en ny nyhet läggs till i systemet, skall panelen visa den inom 2 minuter. Detta måste ske tyst i bakgrunden och utan att ladda om sidan eller påverka användarupplevelsen. (5p) b) Systemadministratörer och reportrar skall enkelt kunna lägga till nytt innehåll till nyhetspanelen. Hur kan detta implementeras? Kom ihåg att ditt svar ska vara i överensstämmelse med systemet som du har utvecklat i a). c) Som du kan se på bilden, innehåller huvudsidan en separat panel som scrollar nyhetsrubrikerna. Kunden vill en sådan panel som skall scrolla var 30 sekund. Vilka typer av ASP.NET kontroller behöver du för att göra det? Hur ska du hantera kravet på 30 sekunders scrollintervall?