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



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

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

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

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

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

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

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna

Konceptuella datamodeller

Inga hjälpmedel är tillåtna

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

Logisk databasdesign

NORMALISERING. Mahmud Al Hakim

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

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

Grunderna för relationsmodellen!

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

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

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

Normalisering. Varför? För att åstadkomma en så bra struktur i databasen som möjligt med minimalt med dubbellagrad info.

Relationsdatabasdesign

Design och underhåll av databaser

Analytisk relationsdatabasdesign

Databasdesign. E-R-modellen

Databaser Design och programmering

Tentamen för DD1370 Databasteknik och informationssystem

1.Lär känna MS SQL Observera. Tips. Förberedelse

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

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem?

TENTAMEN TDDB77 Databaser och Bioinformatik 15 mars 2002, kl 14-18

TENTAMEN TDDB77 Databaser och Bioinformatik 24 april 2004, kl 14-18

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

TENTAMEN DATABASKUNSKAP ITEK12

Starta MySQL Query Browser

Webbprogrammering, grundkurs 725G54

Karlstads Universitet, Datavetenskap 1

TDDI60 Tekniska databaser

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

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

Tentamen. Databasmetodik Lördag 27 september 2014 kl

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

Universitetet: ER-diagram

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 2013 kl. 9-13

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

Informationssystem och databasteknik

Exempel-Tentamen III

TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY!

Utveckling av webbapplikationer med.net, DVA213 (1 av 5)

Lite om databasdesign och modellering

Relationell databasdesign

Tentamen DATABASTEKNIK - 1DL116

Databaser och Datamodellering Foreläsning IV

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

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

Funktionella beroenden - teori

TENTAMEN. TDDD12 Databasteknik TDDD46 Databasteknik. 16 augusti 2010, kl 14-18

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

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

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

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

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

Lösningsförslag, tentamen i Databaser

Ett arbetsexempel Faktureringsrutin

Databasdesignspecifikation för Mätvärdeshanteringssystem

Tentamen för DD1370 Databasteknik och informationssystem

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Frågor att lösa med SQL mot databasen kursdb_sql Sida 1 av 5

Databaser - Design och programmering

Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella

Databaser design och programmering. Design processen ER- modellering

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

732G16: Databaser - Design och programmering

Databaser. Vad du ska lära dig: Ordlista

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

TDDI 60 Tekniska databaser

ER-Diagram. Databasutveckling Diagram

An English version of the questions is found at the back of each page.

Modul DB1-1 Databasmodellering

D0004N Databaser I. Greenline. Petter Hedlin / epeehi-4 Rikard Stenmark / rikste-8 Markus Almberg / maralm-5

IT i organisationer och databasteknik

Tentamen för DD1370 Databasteknik och informationssystem

Karlstads Universitet, Datavetenskap 1

Tentamen plus lösningsförslag

Föreläsning 6: Normalisering & funktionella beroenden

Mitthögskolan ITM Telefon Access. Laborationskompendium för grunderna i databasen Microsoft Access. Detta exemplar tillhör:

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner

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

Tentamen för DD1370 Databasteknik och informationssystem

Databasteknik för D1, SDU1 m fl

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Lösningsförslag Tentamen, 25 april 03

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

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

Föreläsning 4 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Normalisering (Analytisk databasdesign)

Relationsmodellen och syntetisk databasdesign

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

Transkript:

TENTAMEN För kursen DATUM: 2013-12-12 TID: 9 14 Ansvarig för tentamen: Cecilia Sönströd Förfrågningar: 033-4354424 Resultat: Betygsskala: Hjälpmedel: Anslås inom 3 veckor Godkänt 20 p, Väl godkänt 32 p, Max 40 p Inga Instruktioner: Skriv tydligt. Börja varje ny uppgift på ett nytt blad. Använd bara en sida av varje papper. Motivera dina svar väl. Om du anser att en fråga är svår att förstå eller felaktigt ställd, skriv ner din tolkning av frågan tillsammans med svaret. Skriv födelsedatum på varje blad som lämnas in. Lycka till! Cecilia, Anna & Patrick

ALLMÄNT 1. (2 p) I system med filbaserad lagring (där varje applikationsprogram definierar och hanterar sina egna data) finns flera problem som har med datakvalitet att göra. Redogör detaljerat för två av dessa, samt diskutera utförligt hur en databasbaserad ansats löser problemen. 2. (2+2+2 p) a) Ge en översiktlig beskrivning av ansvarsområdet för en databasadministratör (DBA), respektive en dataadministratör (DA). b) Ge ett konkret exempel på en arbetsuppgift för en DBA som påverkar det externa schemat i ANSI/SPARC-modellen för exempeldatabasen DreamHome. Du skall ge en utförlig beskrivning av vad DBA:ns uppgift är i sammanhanget. c) Ge ett konkret exempel på en arbetsuppgift för en DBA som påverkar det interna schemat i ANSI/SPARC-modellen för exempeldatabasen DreamHome. Du skall ge en utförlig beskrivning av vad DBA:ns uppgift är i sammanhanget. 3. (2 p) Ge en detaljerad beskrivning av sambandet mellan följande delar i ett databassystem: DBMS (databashanterare), databas, applikationsprogram. RELATIONSMODELLEN 4. (3 p) Är följande påståenden är sanna eller falska? Motivera dina svar med en förklaring! a) Alla relationer innehåller minst en kandidatnyckel b) Alla relationer innehåller minst en främmande nyckel c) Alla primärnycklar är främmande nycklar i en annan relation 5. (2 p) Ange lämpliga domäner för attributen postnr och telefonnr. Ge både en beskrivning i ord som är så precis som möjligt och en domän som går att implementera i SQL. Om du anser att det behövs några antaganden om databasen för att ange domäner, ange även dessa. REALISERING 6. (2 p) Antag att du arbetar som DBA för en större databas och att det har uppstått prestandaproblem som gör att svarstiden för användare av systemet ibland blir oacceptabelt lång. Beskriv utförligt hur du går tillväga för att ta reda exakt var prestandaproblemen finns och vilka åtgärder som kan vidtas.

7. (1+2 p) Två mekanismer som används för att upprätthålla god säkerhet i en databas är auktorisering och autentisering. a) Vad innebär dessa begrepp? Ge en kort förklaring av begreppen. b) Vilka mekanismer finns i ett databassystem för att implementera auktorisering och autentisering. Ge en översiktlig beskrivning. MODELLERING 8. (2 p) Nedanstående fragment av en konceptuell datamodell är tänkt att modellera en del av ett bibliotek för en högskola, där man vill veta vilka kursböcker som finns i olika ämnen och vem som har skrivit varje bok. Vi antar för enkelhets skull att varje bok har exakt en författare. a) Vilket problem finns med ovanstående modell? b) Åtgärda problemet genom att skapa en bättre modell! Endast UML-diagram behöver anges. 9. (4+2p) Din uppgift är att skapa en databas för en kampsportklubb. Klubben har ett antal medlemmar som kan träna olika kampsporter och ett antal tränare som undervisar i dessa. För alla kampsporter registreras kampsportens namn. För alla medlemmar registreras det (utöver namnet och ett medlemsnummer) vilka kampsportsgrenar de tränar (man kan träna flera olika) och den bältesgrad de har i grenen i fråga. För tränarna registreras det (utöver namnet) vilka kampsportsgrenar de undervisar (en eller flera) och vilken bältesgrad de har i dessa. För de vanliga medlemmarna registreras även information om medlemsavgiften, nämligen beloppet och inbetalningsdatumet. Det ska även registreras om de har en giltig licens eller inte (licenserna är grenvisa). Man skall kunna räkna antalet medlemmar per gren vid behov och även antal tränare per gren vid behov. a) Skapa en konceptuell datamodell med attributlista utifrån beskrivningen ovan. Ni får själva fylla i med fler attribut än de som nämns ovan om det behövs. b) Skapa, baserat på den konceptuella datamodellen i uppgift a), en logisk datamodell med attributlista. Ni behöver inte skriva modellen som relationsschema, utan UMLdiagram räcker. Främmande nycklar skall inte markeras och ni skall inte heller normalisera modellen.

NORMALISERING Ange i dina lösningar om du utgår från Codds definitioner av normalformerna, eller Connolly & Beggs förenklade definitioner. 10. (2 p) Nedanstående relation som innehåller uppgifter om högskolelärare, vilka kurser de undervisar på och vilka ölsorter de gillar, uppfyller BCNF, men bryter mot 4NF. Lärare Kurs Ölsorter Hubert DBT Staropramen Hubert DBT Guinness Hubert SysAd Staropramen Hubert SysAd Guinness Cecilia DBT St. Peter s Winter Ale Cecilia PTek St. Peter s Winter Ale Lucia SysAd Samuel Adams Boston Lager Lucia SysAd Brewdog Punk IPA Lucia SysAd Staropramen Lucia GProg Samuel Adams Boston Lager Lucia GProg Brewdog Punk IPA Lucia GProg Staropramen a) Ange, med korrekt notation, det multivärda beroendet i relationen. b) Normalisera relationen till 4NF. 11. (1+3 p) Relationen R innehåller uppgifter om resultat från rallytävlingar. R(tävlingsId, bana, datum, segrare, varvtidrekord, stall, antalvarv, banlängd, segertid) tävlingsid identifierar unikt en rallytävling, bana är namnet på rallybanan, datum är tävlingsdatumet, segrare är vem som vann loppet, varvtidrekord är banrekordet på ett varv på den aktuella banan, stall är vilket stall segraren tillhör, antalvarv är hur många varv tävlingen kördes, banlängd är banans längd och segertid är segrarens totaltid i tävlingen. Följande funktionella beroenden har identifierats: tävlingsid bana, datum, segrare, varvtidrekord, stall, antalvarv, segertid bana, datum tävlingsid, segrare, varvtidrekord, stall, antalvarv, segertid bana varvtidrekord, banlängd segrare stall segrare, datum segertid Utgå från de funktionella beroenden ni får fram från ovanstående (och inga andra) och normalisera relationen R genom att utföra följande uppgifter: a) Vilken/vilka kandidatnycklar finns i R? b) Normalisera stegvis relationen till BCNF. För varje normalform som ej uppfylls, ange vilket eller vilka beroenden som strider mot normalformen och vilka åtgärder som vidtas i form av nya relationer och förändringar i existerande relationer.

SQL Nedan visas databasschemat för ett enkelt flygplansbokningssystem, där en Kund kan göra en Bokning, som består av en Resväg från en Flygplats till en annan via noll, en eller flera andra flygplatser. För varje delsträcka, finns det en eller flera Passagerare samt en flygning (Flyg) från en avgångsflygplats till en destinationsflygplats. I schemat står PK för Primary Key (primärnyckel) samt FK för Foreign Key (främmande nyckel), där pilarna i schemat visar vilken tabell som den främmande nyckel refererar till (lägg märkte till den sammansatta främmande nyckeln i tabellen Passagerare som refererar till tabellen Resvag). Ett kolumnnamn med fet stil i schemat indikerar att kolumnen inte accepterar NULL, annars accepterar kolumnen NULL. Använd databasschemat för att besvara nedanstående frågor. Kund Passagerare Flygplats PK Kundnummer int Fornamn varchar(20) Efternamn varchar(25) Passnummer varchar(20) Adress varchar(50) Postnummer varchar(10) Ort varchar(25) Land varchar(25) Telefonnummer varchar(15) PK,FK1 Bokningsnummer varchar(10) PK,FK1 Flygnummer varchar(10) PK,FK2 Kundnummer int Biljettklass varchar(15) Sittplats varchar(4) AntalVaskor int Specialmat bit Incheckad bit PK Flygplatskod char(3) Flygplatsnamn varchar(30) Adress varchar(50) Postnummer varchar(10) Ort varchar(25) Land varchar(25) Telefonnummer varchar(15) Email varchar(30) Webbsida varchar(40) Bokning Resvag Flyg PK Bokningsnummer varchar(10) FK1 Kundnummer int Bokningsdatum datetime Kreditkortsnummer varchar(15) Pris numeric(8,2) PK,FK1 Bokningsnummer varchar(10) PK,FK2 Flygnummer varchar(10) Delstracka int PK Flygnummer varchar(10) FK1 Avgangsflygplatskod char(3) FK2 Ankomstflygplatskod char(3) Avgangstid datetime Ankomsttid datetime Avgangsgate varchar(4) Ankomstgate varchar(4) Flygplatskod char(3) 12. (2 p) Skriv en SQL sats som listar samtliga avgångstider och ankomsttider för de flyg vars flygnummer börjar på 'FR' och som inte har några bokningar. Flygnummer, Avgangstid samt Ankomsttid skall finnas med i resultatet. 13. (2 p) Skriv SQL kod för att besvara de tre delfrågorna nedan angående länder i vilka det finns flygplatser samt länder i vilka det bor kunder. Endast Land skall visas i resultatet. a) Lista de länder som antingen har flygplatser eller kunder. b) Lista de länder som både har flygplatser och kunder. c) Lista de länder som har flygplatser, men inga kunder. 14. (2 p) Skriv en SQL sats som returnerar totala antalet flyg per kund för de kunder vars telefonnummer inte är lika med NULL och som har minst 2 flygningar. Kundnummer samt totala antalet flyg per kund, uttryckt som AntalFlyg, skall finnas med i resultatet. Sortera på Kundnummer i stigande ordning. OBS! Samtliga flyg skall räknas med, dvs. inklusive varje flygning som gjorts för varje delsträcka utmed resvägen.