TENTAMEN DATABASKUNSKAP ITEK12

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

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

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)

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

Innehåll Programability Del 2

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

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

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

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

Structured query language (SQL)

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

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

Databasutveckling Microsoft T-SQL - Fortsättning. Funktioner GROUP BY HAVING Skapa databaser Skapa tabeller Lite om transaktioshantering

1. SQL DML (Data Manipulation Language) 2. Lägga till data. 4. Uppdatera data 5. Aktivera default value 6. Hantera datum 7.

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

1. PLSQL 2 2. Select into

Övningar i SQL. SQLAccess.doc Ove Lundgren

Tentamen för DD1370 Databasteknik och informationssystem

Design och underhåll av databaser

Tentamen för DD1370 Databasteknik och informationssystem

Transaktioner. 1. Transaktioner 2. Samtidighet ( concurrency ) och lås. 3. Deadlock. Kap. 17. Informatik B: Databashantering med SQL Server

Lösningsförslag, tentamen i Databaser

Tentamen för DD1370 Databasteknik och informationssystem

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

Tentamen. TDDB38 - Databasteknik

SQL, nästlade delfrågor Nästlade delfrågor. En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga.

Tentamen för DD1370 Databasteknik och informationssystem

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

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

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

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

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

Vyer, Prepared Statements, Triggers

Starta MySQL Query Browser

Databaser och Datamodellering Foreläsning IV

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

Tentamen i Databasteknik

732G16: Databaser - Design och programmering

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

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

Databaser och. SQL, utsökningar mot en tabell

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

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

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

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.

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

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner

MySQL - testmiljöer på minuter. Thomas Johansson IT-avdelningen

INNEHÅLL. Konfigurering av SQL Server. Egenskaper Kommunikationsprotokoll

Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix

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

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

ÖVERVAKNING AV SQL SERVER

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

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

Skapa exempeldatabasen

Sample exam questions. Database exam TIG058

9. :new och :old -värden 10. Triggerns olika delar 11. Olika typer av triggrar 12. Kodexempel. Pär Douhan,

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

Databasutveckling Introduktion till SQL och TSQL

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

Databasteknik för D1, SDU1 m fl

Webbprogrammering, grundkurs 725G54

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

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

WCMS-15, Webbutvecklare CMS

Exempel-Tentamen III

VAD GÖR DU / VEM ÄR DU?

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.

TENTAMEN TDDB77 Databaser och Bioinformatik 19 april 2002, kl 14-18

Filbeskrivningar Eller på särskild CD skiva

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Manuell installation av SQL Server 2008 R2 Express SP2 fo r SSF Timing

Administrationsmanual ImageBank 2

Databaser och. SQL, utsökningar mot flera tabeller TENTA. # radnr (#) studnr (#) kursnr * tentadatum * betyg

Databaser - Design och programmering

Innehåll. MySQL Grundkurs

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

1. SQL 2. Utsökningar mot flera tabeller. 4. IN-operatorn 5. Join 6. Kartesisk produkt 7. Tabellalias

Inga hjälpmedel är tillåtna

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

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

public DataSet GenerateDataSet(SqlCommand dbcommand, String tablename, out String errormsg) { errormsg = "";

Databaser. Vad du ska lära dig: Ordlista

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

Laboration SQL. Kom igång.

Klientprogrammering mot databaser

Innehåll MySQL Intro. Historik / Utveckling Produkter Primära delsystem Installation Tabell och datatyper Namnsättning

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

Karlstads Universitet, Datavetenskap 1

Informa5onsmodellering

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

Tentamen ges för: Tentamensdatum: Tid:

Volvo Information Technology. Meny

Transkript:

TENTAMEN DATABASKUNSKAP ITEK12 Tid: Fredag den 19 oktober kl. 9-00-12.00, sal D409 Tillåtna hjälpmedel: Endast papper och penna. Poäng: Maxpoäng: 56. Gräns för G: 50%. Gräns för VG: 75%. Om något som verkar oklart: Skriv några rader om hur du uppfattar frågan. Petter ringer till tentavakten efter 30 min och kollar om det uppstått några frågor. Lycka till önskar Petter och Patrick

DEL 1 INSTALLATION AV MICROSOFT SQL SERVER Fråga 1 (9p) När man installerar Microsoft SQL Server bör man konfigurera systemet på ett visst sätt för att erhålla god prestanda samt säkerhet. Besvara nedanstående delfrågor om detta. a) Det är viktigt att välja rätt COLLATION under installationen av SQL Server. Varför är detta viktigt och vad påverkas av valet av COLLATION? b) SQL Server har ett default-konto, kallat SA (för "System Administrator"), med fullständiga rättigheter på databasinstansen. Hur bör man konfigurera detta konto? c) Man kan konfigurera tre olika protokoll i SQL Server för själva kommunikationen med klienter, nämligen Shared Memory, Named Pipes samt TCP/IP. Vad bör man tänka på under installationen när det gäller konfigureringen av TCP/IP protokollet? Varför? DEL 2 LAGRADE PROCEDURER, CURSORS, TRANSAKTIONER, FUNKTIONER OCH TRIGGERS Antag att följande SQL satser har körts när du besvarar nedanstående frågor. CREATE TABLE Loner (Lon DECIMAL (7,2) NOT NULL) CREATE TABLE Anstalld ( Anr INT NOT NULL PRIMARY KEY, Namn VARCHAR (25) NOT NULL, Lon DECIMAL (7,2) NOT NULL ) INSERT INTO Anstalld VALUES (1, 'Adam', 1000.00), (2, 'Bertil, 2000.00), (3, 'Cesar', 3000.00), (4, 'David', 4000.00), (5, 'Erik', 5000.00)

Fråga 2 (9p) Den lagrade proceduren P1 finns definierad i databasen. Besvara nedanstående delfrågor angående den lagrade proceduren. CREATE PROCEDURE P1 ( @Anr INT, @Tillagg DECIMAL (7,2) = 0.00, @Antal INT OUT ) AS DECLARE @BasLon DECIMAL (7,2), DECLARE @Lon DECIMAL (7,2) DECLARE Anstalld_Cursor CURSOR FOR SELECT Lon FROM Anstalld ORDER BY Anr ASC SELECT @BasLon = Lon FROM Anstalld WHERE Anr = @Anr SET @BasLon = @BasLon + @Tillagg OPEN Anstalld_Cursor FETCH NEXT FROM Anstalld_Cursor INTO @Lon WHILE @@FETCH_STATUS = 0 IF @BasLon > @Lon INSERT INTO Loner VALUES (@Lon) ELSE IF @BasLon < @Lon CONTINUE INSERT INTO Loner VALUES (@Lon) ELSE BREAK INSERT INTO Loner VALUES (@Lon) FETCH NEXT FROM Anstalld_Cursor INTO @Lon

CLOSE Anstalld_Cursor DEALLOCATE Anstalld_Cursor TRAN T1 INSERT INTO Loner VALUES (6000.00) COMMIT TRAN T1 TRAN T2 INSERT INTO Loner VALUES (7000.00) ROLLBACK TRAN T2 SELECT @Antal = COUNT (*) FROM Loner a) Vilket värde innehåller variabeln @Antal efter att nedanstående SQL kod körts? DECLARE @Antal INT EXEC P1 3, 1000.00, @Antal OUT PRINT 'Antal=' + CONVERT(VARCHAR, @Antal) b) Vad returnerar nedanstående SELECT sats efter att SQL koden i deluppgift a) körts? Anta att tabellen Loner är tom innan koden i deluppgift a) körts. SELECT * FROM Loner c) Vad innebär uttrycket @@FETCH_STATUS = 0? Fråga 3 (4p) a) Vilka olika typer av AFTER triggers kan man skapa på en tabell? b) En trigger följer ECA-reglerna. Vad står ECA för och vad innebär dessa tre regler?

DEL 3 UPPBYGGNADEN AV DATABASER PLUS SQL Fråga 4 (11p) Du har just fått arbete som IT-tekniker på ett medelstort företag Grattis! PÅ IT-avdelningen har man nyligen bestämt att man ska dokumentera mjukvarulicenser för varje anställd, för att underlätta framtida kommunikation och uppgraderingar. Du åtar dig att skapa ett förslag till databas för systemet. Du får reda på att företaget består av ett antal avdelningar och att en anställd bara kan höra till en avdelning, Varje anställd kan förstås ha många mjukvarulicenser eftersom företaget använder många olika mjukvaror (MS Office, Adobe Creative Suite, IT-avdelningens egna program etc), men de behöver inte nödvändigtvis ha någon licens alls (vaktmästarna saknar licenser exempelvis). Systemet ska även innehålla information om vilket nätverksuttag den anställda har (om något). Skapa en objektmodell över systemet. Skapa därefter ett ER-diagram med kardinaliteten utsatt för hela systemet. ER-diagrammets entiteter ska motsvara tabellerna i en databas. Skriv ut attributen (=kolumnnamnen) på valfritt sätt för de olika entiteterna. Du behöver däremot INTE rita ut databasens tabeller. Gör antaganden där du saknar information från texten, och förklara dina antaganden (t.ex. gällande kardinalitet). Fråga 5 (11p) En biblioteksdatabas har ett antal böcker. Boktiteltabellen ser ut som följer nedan. ( ForfID är författarens ID, som hämtats från tabellen Forfattare, där för- och efternamn, födelseår mm återfinns för varje författare.) Utlan är antalet gånger som boken lånats ut. En tabell som inte syns här har koll på varje exemplar av en specifik titel. En annan tabell listar de språk som böckerna är skrivna på.) Titel (Exempel) titelid int 77 forfid int 12 sprakid tinyint 2 namn varchar(50) Romeo and Juliet utgivningsar smallint 2008

utlan int 52 hyllplacering varchar(10) Hc skapad datetime 2008-04-1315:21:20 uppdaterad datetime 2008-04-1315:21:20 uppdaterad_av char(2) LR Forfattare (Exempel) forfid int 12 enamn varchar(30) Shakespeare fnamn varchar(30) William landid smallint 3 fodd smallint 1564 dod smallint 1616 skapad datetime 2005-10-0310:52:13 uppdaterad datetime 2009-02-2709:22:41 uppdaterad_av char(2) JS Skriv kod i MS Sql för följande: A. Lista förnamn, efternamn och födelseår för författare som är födda efter 1912. Sortera på i första hand efternamn, i andra hand förnamn, i tredje hand årtal (tänk telefonkatalog). B. Lista alla boktitlar av Shakespeare, sorterade i titelordning. C. Uppdatera posten Macbeth i titeltabellen: Ändra årtalet 1609 till 1606. D. Ta bort alla böcker som inleds med Testbok (dvs Testbok1, Testbok2 etc, som någon skapade när systemet byggdes och som glömdes kvar)

DEL 4 TEORI (UR BOKEN) Fråga 6 (8p) Redogör för följande begrepp: a) Primärnyckel b) Konsistens c) Referensintegritet alt. integritetsvillkor d) Rollback Fråga 7 (4p) Vad är en sql injection attack? Beskriv och ge exempelkod!