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

Relevanta dokument
TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. 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

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

TENTAMEN DATABASKUNSKAP ITEK12

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

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

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

Design och underhåll av databaser

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

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Databaser och Datamodellering Foreläsning IV

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

732G16: Databaser - Design och programmering

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

Konceptuella datamodeller

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

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

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

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

Databaser - Design och programmering

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

Tentamen. TDDB38 - Databasteknik

Analytisk relationsdatabasdesign

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

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

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

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

Databaser design och programmering. Design processen ER- modellering

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

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

NORMALISERING. Mahmud Al Hakim

Webbprogrammering, grundkurs 725G54

Exempel-Tentamen III

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

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

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

Logisk databasdesign

Lösningsförslag, tentamen i 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.

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

Relationsmodellen och syntetisk databasdesign

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

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

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

Inga hjälpmedel är tillåtna

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

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

Försättsblad till skriftlig tentamen vid Linköpings universitet TER1

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

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

Tentamen i Databasteknik

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

Sample exam questions. Database exam TIG058

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

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

Tentamen DATABASTEKNIK - 1DL116

Karlstads Universitet, Datavetenskap 1

Övningar i SQL. SQLAccess.doc Ove Lundgren

Tentamen i Databasteknik

Databasteknik för D1, SDU1 m fl

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Försättsblad till skriftlig tentamen vid Linköpings Universitet

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

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

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

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Databasteknik för D1, SDU1 m fl

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

Structured query language (SQL)

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

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

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

Starta MySQL Query Browser

Databaser Design och programmering

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

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

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

Försättsblad till skriftlig tentamen vid Linköpings universitet

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.

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Försättsblad till skriftlig tentamen vid Linköpings universitet

WCMS-15, Webbutvecklare CMS

Grunderna för relationsmodellen!

ER-Diagram. Databasutveckling Diagram

Databasspråket SQL - online.

Vad är en databas? Databasutveckling Med MySQL/MariaDB

Prova på-laboration i SQL

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

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

TDDI60 Tekniska databaser

Tentamen. i Databasteknik. lördagen den 13 mars Tillåtna hjälpmedel: Allt upptänkligt material

Informa5onsmodellering

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

Skapa exempeldatabasen

Transkript:

1 (7) Försättsblad till skriftlig tentamen vid Linköpings universitet Datum för tentamen Sal (1) Tid Kurskod Provkod Kursnamn/benämning Provnamn/benämning Institution Antal uppgifter som ingår i tentamen Jour/Kursansvarig Ange vem som besöker salen Telefon under skrivtiden 2016-01- 19 TER3 14-18 729G28 TEN1 Webprogrammering och databaser Tentamen IDA 6 Erik Prytz 070-2762748 Besöker salen ca klockan ca kl. 14:45 Kursadministratör/kontaktperson (namn + tfnr + mailaddress) Tillåtna hjälpmedel Övrigt Antal exemplar i påsen Annelie Almquist 013-28 29 annelie.almquist@liu.se Inga hjälpmedel tillåtna. Instruktioner: Skriv läsligt. Visa ditt arbete när så krävs av uppgiften. Läs igenom tentan innan du börjar, så att du kan fråga jourhavande lärare om det finns oklarheter. Använd ett papper per fråga. Totalt antal poäng: 23 Poäng för G: 11,5 Poäng för VG: 17,5 Lycka till!

2 (7) 1. Begrepp: a. (1p) Flervalsfråga, välj endast ett alternativ: I databassammanhang skiljer man på instans och schema. Vad är en instans av en databas? A: En beskrivning av de tabeller som kan finnas i databasen B: En tabell bestående av en mängd tupler i databasen C: Den ordnade listan av attributvärden i databasen D: Den samling data som just nu finns i databasen b. (1p) Flervalsfråga, välj endast ett alternativ: I ER- modellen, vad är attribut? A: Kopplingar mellan olika koncept (typer av saker) i modellen B: De koncept (typer av saker) som finns i modellen C: Specifika instanser av koncept (typer av saker) som finns i modellen D: De egenskaper som koncept (typer av saker) i modellen har c. (2p) Kort svar: Vilka tre nivåer ingår i den så kallade tre- schema- arkitekturen, och vad innebär varje nivå? (Svara med 1-2 meningar per nivå)

3 (7) 2. (4p) ER- Design: Nystartade företaget FilmNät, som har den unika idén att hyra ut digitala filmer till användare över internet(!), vill ha en databas för att hantera sin verksamhet. De har anlitat dig för att ta fram ett designförslag på hur den nya databasen ska se ut. I detta skede vill de alltså ha ett ER- diagram som visar en lämplig lösning utifrån deras kravspecifikation. - Det första FilmNät vill kunna lagra i sin databas är förstås de filmer som de har tillgång till och kan hyra ut. De vill spara titeln på filmen, hur många minuter filmen är, utgivningsår, samt vilket land filmen är producerad i. De vill även lagra skådespelare, med namn, ålder och skådis- id (ett unikt nummer för alla skådespelare i databasen). Eftersom samma skådis kan ha varit med i flera olika filmer, och de flesta filmer har mer än en skådis vill de kunna spara den informationen separat från filmernas information. Alla filmer har förstås minst en skådespelare. - FilmNät vill också spara vem som regisserat filmen. De vill ha namn och unikt id på regissörerna. Varje film måste ha en och endast en regissör. Fast samma regissör kan ju ha regisserat flera filmer, förstås. - Till sist vill FilmNät även spara data om användarna. Användarna måste ha unika användarnamn samt ett lösenord för att logga in på FilmNät. Användarens ort ska också sparas, samt användarens telefonnummer. En användare kan förstås hyra filmer. När en användare hyr en film ska information om vilket datum som uthyrningen sker (uthyrningen gäller bara i 7 dagar) samt till vilket pris (samma film kan ibland ha olika pris i samband med specialerbjudanden och så vidare). Varje användare är också automatiskt med i FilmNäts bonusprogram, PlusFilm. Varje gång en användare hyr en film får de ett antal PlusPoäng och det ska också sparas i databasen. FilmNät vill kunna söka fram det totala antalet poäng för varje användare också, för att ge specialerbjudanden. En användare kan hyra så många filmer de vill, och eftersom filmerna är digitala har inte FilmNät några fysiska kopior av filmerna och kan således hyra ut samma film till hur många som helst samtidigt. Rita ett ER- diagram baserat på denna kravspecifikation. Markera nycklar, deltagande, samt kardinalitet där det behövs. Du behöver inte översätta ER- diagrammet till relationstabeller. Om information saknas eller kravspecifikationen är för vag i något avseende (ex. rörande unika värden för nycklar, deltagande, eller kardinalitet) när du bestämmer din design måste du specificera de antaganden du gör.

4 (7) 3. (4p) ER till Relation: Ett nytt rapporteringssystem för folkhälsa planeras i Sverige. Socialstyrelsen (SOS) har redan designat ett ER- diagram över hur de vill att databasen ska vara strukturerad, men har inte lyckats översätta ER- diagrammet till en relationsdatabas. Hjälp SOS genom att översätta diagrammet till en lämplig relationsdatabas i enlighet med översättningsstegen beskrivna i kursboken och/eller föreläsningarna. För denna fråga behöver du inte formellt normalisera relationerna, men bör ändå sträva mot en enkel och icke- redundant lösning. Skriv ut relationerna enligt exempelformatet nedan och stryk under alla primärnycklar. Skriv även separat alla främmande nycklar med pilar till de primärnycklar dessa refererar till. Skriv ut de antaganden du gör, om några. Exempelformat för relationerna: Relationsnamn(Attribut 1, Attribut 2, Attribut 3) Exempelformat för främmande nycklar: RelationEtt(FrämmandeNyckel) à RelationTvå(Attribut).

5 (7) 4. (4p) Normalisering: En klantig databasdesigner har implementerat en dåligt designad relationsdatabas åt affärskedjan Freudian Slippers, som säljer tofflor med roliga motivtryck. Nu är det upp till dig att få lite fason och ordning på denna databas. Den dåliga databasen består av en enda stor tabell: BUTIK(AnställningsID, TransaktionsID, VaruID, Förnamn, Färg Efternamn, Timmar, Adress, Pris, Märke, Datum, Storlek, Butiksnamn, Lagerantal, Timlön, Antal, Tryck) I den ligger alltså all information, från information om de anställda (som deras namn och lön), till butikerna med sina namn och adresser, lagerstatus, till alla transaktioner (försäljningar) och så vidare. Du vet att följande fullt funktionella beroenden (FFB) finns: {AnställningsID} à {Förnamn, Efternamn, Timlön} {AnställningsID, Butiksnamn} à {Timmar} {Butiksnamn} à {Adress} {Butiksnamn, VaruID} à {Pris, Lagerantal} {VaruID, TransaktionsID} à {Antal} {TransaktionsID} à {Datum, Butiksnamn} {VaruID} à {Märke, Färg, Tryck, Storlek} Normalisera tabellen BUTIK så att den uppfyller Boyce- Codd Normalform (BCNF). Skriv ut relationer inklusive attribut. Lista alla främmande nycklar (se fråga 7 för exempelformat). Motivera varför din lösning uppfyller varje normalform. Ange eventuella antaganden du gör.

6 (7) 5. (3p) Integritet: En klantig databasdesigner har problem med en databas för ett rederi och kan inte förstå varför det är fel. Hen försöker köra följande antal kommandon, men vissa lyckas inte: Rad Kommando 1 Insert into Rutt values(1, Skutskär, Öland, FALSE ); 2 Insert into Rutt values(4, Skutskär, Borneo, TRUE ); 3 Insert into Rutt values(2, Öland, Borneo, TRUE ); 4 Insert into Färja values(1, Eken,200,3); 5 Insert into Färja values(2, Lången,1000,4); 6 Insert into Färja values(4, Eken,50,4); 7 Insert into Färja values(2, Öland,0,2); Du ber att få se SQL- koden som användes för att skapa de relationer som kommandona arbetar mot i databasen, och får då detta: create table Rutt( Rutt_ID int not null primary key, Start varchar(255) not null, Mål varchar(255) not null, Taxfree boolean default FALSE); create table Färja( Skepp_ID int not null, Namn varchar(255), Max_Antal_Passagerare int, Rutt int, primary key (Skepp_ID), foreign key (Rutt) references Rutt (Rutt_ID)); Några av de kommandon som databasdesignern försöker köra bryter mot något av de två olika integritetsvillkor. Vad heter de två integritetsvillkoren, vad innebär de, och vilka kommandon (ange rad) bryter mot vilket kommando på vilket sätt?

7 (7) 6. (4p) SQL: a. SQL är både ett DDL och ett DML. Vad står dessa förkortningar för, och vad innebär de två begreppen? b. Den frustrerade databasdesignern från fråga 5 har äntligen fått kläm på sina tidigare problem och har laddat in en hiskelig massa (korrekt) data i databasen. Nu försöker hen fråga databasen hur många färjor som trafikerar rutt 8 och där färjans namn börjar på H och kan ta mer än 150 passagerare men det vill sig inte. Ta en titt på hens SQL- fråga och rätta till den så att den fungerar. Det är samma databas som i fråga 5, så titta på create table- koden från den frågan för tabeller, kolumner, nycklar, etc. Hint: det finns flera fel i nedanstående kod select Max(Skepp_ID) as Antal_Skepp from Färja join Rutt as R on Färja.Skepp_ID = R.Rutt_ID where Rutt_ID = 9 and Färja.Namn = H% and Färja.Max_Antal_Passagerare>150; c. Vilka av följande SQL- satser manipulerar databasinstansen och vilka manipulerar databasschemat? 1. Insert into Färja values(9, Oxe,20,5); 2. Alter table Färja drop Namn; 3. Create table Kapten(id int primary key, namn varchar(255)); 4. Delete from Färja where Skepp_ID = 10;