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



Relevanta dokument
TENTAMEN DATABASKUNSKAP ITEK12

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

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

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

Inga hjälpmedel är tillåtna

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

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

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

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

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

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

Tentamen för DD1370 Databasteknik och informationssystem

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

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

Starta MySQL Query Browser

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

Structured query language (SQL)

Innehåll Programability Del 2

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

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

Tentamen för DD1370 Databasteknik och informationssystem

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

Tentamen DATABASTEKNIK - 1DL116

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

Databasutveckling Tabeller. tinyint 1 byte (0-255) Upp till 8 bytes

Lösningsförslag, tentamen i Databaser

Övningar i SQL. SQLAccess.doc Ove Lundgren

D1. Create Domain TEXT30 char(30) Default INGET VÄRDE! ;

Karlstads Universitet, Datavetenskap 1

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

För att XCOPY i SQL Server Express ska fungera måste data och logg ligga i samma mapp, vilket naturligtvis inte är så bra.

Databaser. Vad du ska lära dig: Ordlista

Design och underhåll av databaser

Tentamen för DD1370 Databasteknik och informationssystem

Föreläsning 2: Översikt över ett databassystem

Grunderna för relationsmodellen!

DVA234 Databaser. Dag Nyström, Introduktion till databaser och MS SQL Server

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

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

Databaser och Datamodellering Foreläsning IV

Introduktion till frågespråket SQL (v0.91)

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

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

I denna laboration skriver jag inte ut resultatet på de flesta frågorna utan du kör dem själv i din miljö.

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Tentamen för DD1370 Databasteknik och informationssystem

Relationsmodellen och syntetisk databasdesign

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

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

Databaser design och programmering. Design processen ER- modellering

Skapa exempeldatabasen

732G16: Databaser - Design och programmering

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

Tentamen. TDDB38 - Databasteknik

Informationssystem och Databasteknik

Webbprogrammering, grundkurs 725G54

Föreläsning 3 Dagens föreläsning går igenom

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

1. SQL DDL (Data Definition Language) 2. Skapa tabell

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

Exempel-Tentamen III

Konceptuella datamodeller

Se kurshemsidan för användbara länkar för att genomföra denna laboration.

Tentamen för DD1370 Databasteknik och informationssystem

NORMALISERING. Mahmud Al Hakim

Databaser - Design och programmering

Tentamen för 1E1601. Måndag 10 mars 2003, kl Alla hjälpmedel tillåtna

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

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

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

02/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Dagens föreläsning. Om Lab 1. De 11 Stegen (Kokbok)

Laborationer - databaser, EDAA20 Programmering och databaser

Laboration SQL. Kom igång.

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

Analytisk relationsdatabasdesign

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

Betyg: Underkänd 0-29 poäng poäng poäng poäng

Databasspråket SQL - online.

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

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla

Provmoment: Omtentamen 1 (dvs salstentamen 2) för kursen under LP4, TS1A, 21TS1U (VT14P4) Tentamen ges för: För fastighetsmäklare (FM12)

9. Between 10. Group by 11. Aggregatfunktionerna max, min, sum och avg 12. Nästlade sökningar

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

Databasspråket SQL - online.

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

Lite om databasdesign och modellering

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

Provmoment: Omtentamen 2 (dvs salstentamen 3) för kursen under LP4, TS1A, 21TS1U (VT14P4) Tentamen ges för: För fastighetsmäklare (FM12)

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

Sample exam questions. Database exam TIG058

Vyer, Prepared Statements, Triggers

Databaser och. SQL, utsökningar mot en tabell

Tentamen i Databasteknik

Du skall naturligtvis visa körexempel med output där det behövs i din rapport!

IT i organisationer och databasteknik

Transkript:

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: Namn: Personnummer: Individuell prövning 41E03B Öppen för alla Tentamensdatum: 2013-08-20 Tid: 09:00-13:00 Hjälpmedel: Inga hjälpmedel Totalt antal poäng på tentamen: 40 poäng För att få respektive betyg krävs: 3=20, 4=27, 5=34 Allmänna anvisningar: Skriv tydligt (oläsligt = fel)!! Numrera sidorna samt börja varje ny uppgift på nytt blad. Poängavdrag kan ges för onödigt komplicerade eller ostrukturerade lösningar. Rättningstiden är som längst tre veckor Viktigt! Glöm inte att skriva namn på alla blad du lämnar in. Lycka till! Ansvarig lärare: Tuve Löfström 033-435 42 36 Patrik Gustavsson (SQL)

ALLMÄNT 1. (3 p) En central tanke vid införande av ett databassystem är att separera definition och hantering av data i verksamheten från de olika applikationsprogrammen, så att flera applikationsprogram kan dela på samma data. Redogör för hur detta åstadkoms i ett databassystem. Beskriv vilka roller och ansvarsområden som finns och hur deras arbete säkerställer att delning av data är möjlig. 1. (2+2 p) Den kanske viktigaste fördelen med databaser jämfört med filbaserade system är ökade möjligheter till delning av data inom organisationen. a. Förklara detaljerat varför detta är svårt att åstadkomma i filbaserade system. Illustrera med ett utförligt exempel. b. Förklara detaljerat varför databassystem möjliggör delning av data. Illustrera med ett utförligt exempel. 2. (1+1+2 p) a) Vad är en vy? Ge en formell definition och en förklaring med egna ord. b) Ge exempel på en del av ett databasschema (med relationer och attribut) och en vy på den. c) Hur kan vyer användas för att förenkla användarnas arbete mot databasen? Redogör i detalj för två olika möjligheter. RELATIONSMODELLEN 3. (2 p) Vad är redundans och varför är det önskvärt att minimera redundansen i en databas? 4. (1+2 p) a. Vad innebär referensintegritet? Förklara med egna ord. b. Förklara varför referensintegritet är nödvändigt för att upprätthålla datakvalitet i en databas. Illustrera gärna med exempel. REALISERING 5. (2 p) Definiera och förklara följande begrepp: a. Tupel b. Kardinalitet c. Ställighet d. Domän 6. (1+1+1 p) För att hantera samtidig åtkomst till data i en databas används transaktioner. a) Vad är en transaktion och vilka krav måste den uppfylla? b) Vilka problem kan uppstå när flera transaktioner försöker komma åt samma data? Diskutera dels generellt och illustrera med ett exempel. c) Det finns två huvudsakliga ansatser för att lösa dessa problem. Vilka är de? Ge en kortfattad beskrivning av ansatserna. 1

MODELLERING 7. (2 p) Vid realiseringen av en ER-modell så skall vissa samband omvandlas till tabeller. Beskriv vad som kännetecknar de samband som leder till att en ny tabell måste skapas och vilka egenskaper som kännetecknar en sådan tabell. Ge ett exempel för minst en av de samband som du har beskrivit. 8. (3+3 p) Ett företag består av anställda som arbetar på olika kontor. Varje kontor har en chef som också är anställd. Företaget hyr ut bilar och varje bil har därför en fast dygnshyra, förutom antal platser och en milhyra. Varje anställd ansvarar för ett antal bilar. En bil kan bara hyras ut till en kund i taget. Både kunder och anställda är personer som har namn och telefonnummer. En anställd har lön. Kontor har, förutom adress, även en total hyresintäckt som är summan av hyran (dygnshyra + milhyra * antal körda mil) för alla bilar som hanteras av dess anställda och som beräknas en gång vid varje månadsskifte. a. Rita en ER-modell med attribut utifrån ovanstående beskrivning. b. Realisera er ER-modell från a. Realiseringen skall innehålla attribut och tabeller. Ni behöver inte ange främmande nycklar och kan välja att representera lösningen som ett relationsschema, eller i diagramform (på motsvarande sätt som diagrammen i SQL Server). 2

SQL 9. (6 p) Längst bak i tentan finns en bilaga som innehåller ett schema samt motsvarande tabeller för ett hyrbilsbokningssystem. Systemet registrerar bokningar av fordon för företagets kunder. En kund bokar ett fordon från ett visst datum till ett visst datum. En bokning kan ha ett av tre olika statuskoder {VäntarHämtning, Hämtad, Återlämnad}. Fem olika fordonstyper erbjuds kunderna {Liten, Mellan, Stor, Minibuss, Miljöbil}. Använd schemat samt tabellerna för att besvara frågorna nedan. I schemat står PK för Primary Key (primärnyckel) samt FK för Foreign Key (främmande nyckel). Kolumner markerade med fet stil i schemat accepterar inte NULL. a) Skriv en SQL sats som listar medeldagshyran per fordonstyp. Dessutom skall endast fordonstyper med en medeldagshyra större än 1600 visas i listan. Visa kolumnen Typ och medeldagshyran i resultatet samt sortera på Typ i fallande ordning. TIPS: Aggregatfunktionen AVG används för att beräkna medelvärdet av en kolumn, t.ex. AVG(kolumnnamn). b) Vad returnerar nedanstående SQL sats? SELECT Registreringsnummer FROM Fordon WHERE Registreringsnummer NOT IN ( SELECT DISTINCT Registreringsnummer FROM Bokning ); c) Skriv en SQL sats som uppdaterar Telefonnummer till "033xxxxxx" för samtliga kunder vars Ort innehåller ordet "Borås" och som inte har ett telefonnummer (dvs där Telefonnummer är lika med NULL). OBS! Ort kan alltså innehålla ord som "Borås", "xborås", "Boråsx" samt "xboråsx", där x utgör en sträng av godtycklig längd. d) Skriv en SQL sats som lägger till kunden nedan i tabellen "Kund". Kundnummer Fornamn Efternamn Adress Postnummer Ort Telefonnummer 5 Eva Karlsson Regementsgatan 1 54500 Skövde 0500101010 3

10. (3 p) Använd schemat i bilagan för att besvara nedanstående frågor. a) Skriv en CREATE TABLE sats för att skapa tabellen "Fordon" enligt schemat i bilagan. Inga kolumner skall acceptera NULL värden. b) Skriv en ALTER TABLE sats för tabellen "Fordon" som lägger till villkoret att Miltal måste vara större än 0. c) Vad är det för skillnad på att definiera en kolumn med datatypen CHAR(6) respektive VARCHAR(6)? d) Vad innebär det om en kolumn är definierad med ett default värde? 4

11. (3 p) Använd schemat i bilagan för att besvara nedanstående frågor. Följande trigger finns definierad: CREATE TRIGGER Fordonstrigger ON Fordon AFTER UPDATE AS BEGIN DECLARE @Registreringsnummer CHAR(6) DECLARE @Dagshyra1 DECIMAL(7,2) DECLARE @Dagshyra2 DECIMAL(7,2) DECLARE @AntalMil SMALLINT DECLARE Fordon_Cursor CURSOR FOR SELECT i.registreringsnummer, i.dagshyra, d.dagshyra, i.miltal - d.miltal AS AntalMil FROM INSERTED i JOIN DELETED d ON i.registreringsnummer = d.registreringsnummer OPEN Fordon_Cursor FETCH NEXT FROM Fordon_Cursor INTO @Registreringsnummer, @Dagshyra1, @Dagshyra2, @AntalMil WHILE @@FETCH_STATUS = 0 BEGIN IF @AntalMil > 0 AND @Dagshyra1 = @Dagshyra2 BEGIN UPDATE Fordon SET Dagshyra = @Dagshyra1 - (@AntalMil / 10) WHERE Registreringsnummer = @Registreringsnummer END END FETCH NEXT FROM Fordon_Cursor INTO @Registreringsnummer, @Dagshyra1, @Dagshyra2, @AntalMil END CLOSE Fordon_Cursor DEALLOCATE Fordon_Cursor a) Vad händer om nedanstående SQL sats körs? Anta att den UPDATE som körs inuti triggern inte utlöser triggern på nytt. UPDATE Fordon SET Miltal = 1100 WHERE Registreringsnummer IN ('ABC123', 'ADN274') b) Vad innehåller tabellerna UPDATED respektive DELETED under tiden triggern körs? c) Vad betyder uttrycket @@FETCH_STATUS = 0? d) Vilka olika typer av AFTER triggers kan man definiera på en tabell? 5

Kund PK Kundnummer INTEGER Fornamn Efternamn Adress Postnummer Ort Telefonnummer VARCHAR(20) VARCHAR(25) VARCHAR(50) CHAR(5) VARCHAR(20) VARCHAR(10) 1..* Bokning PK Bokningsnummer INTEGER FK1 Kundnummer INTEGER FK2 Registreringsnummer CHAR(6) FK3 Bokningsstatuskod SMALLINT Frandatum DATETIME Tilldatum DATETIME Betald BIT * Fordon PK Registreringsnummer CHAR(6) FK1 Fordonstypkod SMALLINT Modell VARCHAR(50) Miltal SMALLINT Dagshyra DECIMAL(7,2) AntalPassagerare SMALLINT Automat BIT 1..* 1..* Bokningsstatus PK Bokningsstatuskod SMALLINT Fordonstyp PK Fordonstypkod SMALLINT Status VARCHAR(15) Typ VARCHAR(20) Kund Kundnummer Fornamn Efternamn Adress Postnummer Ort Telefonnummer 1 Sven Svensson Solbacken 5 50636 Borås 033123456 2 Lotta Olsson Kyrkogatan 11 50912 Borås 033112233 3 Anders Andersson Sandvägen 7 41137 Göteborg 031332211 4 Tore Toresson Sjögatan 3 50812 Borås 033542312 Bokning Boknings Kund Registrerings Boknings nummer nummer nummer statuskod FranDatum TillDatum Betald 1 1 ADN274 2 2013-03-25 09:00:00 2013-04-05 09:00:00 1 2 2 KAD395 1 2013-05-01 18:00:00 2013-05-15 18:00:00 0 3 3 PPP409 1 2013-05-03 10:00:00 2013-05-10 18:00:00 0 4 4 LJF599 1 2013-05-07 08:00:00 2013-05-09 19:00:00 0 Fordon Registrerings Fordon Antal Modell Miltal Dagshyra nummer typkod Passagerare Automat ABC123 1 Toyota Aygo 1.0 1000 1000.00 4 0 LJF599 1 Volkswagen Golf 1.6 3000 1300.00 5 1 ADN274 2 Volkswagen Passat 2.0 1000 1350.00 5 1 AVE693 2 Opel Insignia 1500 1470.00 5 0 GPS935 3 Hyundai Sonata 1500 1750.00 5 1 HAP555 3 Volvo V70 2000 1630.00 5 0 BUS104 4 Volkswagen Sharan 3000 2000.00 7 1 KAD395 4 Volkswagen Transporter 2500 2150.00 9 1 PPP409 5 Saab 9-3 1000 1550.00 5 1 Bokningsstatus Fordonstyp Bokningsstatuskod Status Fordonstypkod Typ 1 VäntarHämtning 1 Liten 2 Uthämtad 2 Mellan 3 Återlämnad 3 Stor 4 Minibuss 5 Miljöbil 6