ÖVNING 14. (Primärnycklar är angivna med fetstil.)

Relevanta dokument
ÖVNING 14. (Primärnycklar är angivna med fetstil.)

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Lösningsförslag till Exempel tentamen

DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL. r s använder vi för att uttrycka frågor där ordet alla figurerar:

INFORMATIONSSYSTEM OCH DATABASTEKNIK 2I1104

IT I ORGANISATIONER OCH DATABASTEKNIK

08/11/13. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Deadline på tisdag

Tentamen plus lösningsförslag

Exempel-Tentamen III

Informationssystem och Databasteknik, 2I-1100 HT2001. Relationsalgebra. Relationsalgebran är sluten: R 1 op R 2 R 3.

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

INFORMATIONSSYSTEM OCH DATABASTEKNIK

PI Namn (SIGMA Favoritmat= Melass (HÄST) SELECT Namn FROM HÄST WHERE Favoritmat = Melass

07/11/14. Databasteknik och informationssystem DD1370 F2. Allmänna frågor. Är Lab0 svårbegriplig? Nu: Clickers. Är Kurswebben svårbegriplig?

Tentamen i Databasteknik

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

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.

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

Lösningsförslag till Tentamen,

Databasspråket SQL - online.

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

Idag. 1. Från modell till databasstruktur. 2. Prata med databaser (frågepsråket SQL)

Från verklighet via modell till databas. Idag. Testa reglerna på varuhusmodellen. Från verklighet via modell till databas

Grunderna i SQL del 1

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

Tentamen EIT:DB Databastmetodik 11/ kl Lösningsförslag

Övningar i SQL. SQLAccess.doc Ove Lundgren

Laboration SQL. Kom igång.

13/11/14. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Vad är en Databas?

SQL del 2. Christer Stuxberg Institutionen för Informatik och Media

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.

Tentamen i Databasteknik

Extra övningar i SQL. Följande SQL-satser bygger på exemplen (och databasen) i föreläsningsbilderna från föreläsningen om relationsalgebra.

Vad är SQL? Introduktion till SQL

Idag. Exempel. Exempel modellen (1) Exempel...

Structured query language (SQL)

Tentamen för DD1370 Databasteknik och informationssystem

Lösningsförslag till fiktiv tentamen för DD1370 Databasteknik och informationssystem

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

Lösningsförslag Tentamen, 25 april 03

Structured Query Language (SQL)

Databasspråket SQL - online.

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

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

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

Sample exam questions. Database exam TIG058

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

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

Databasspråket SQL - online.

Relationsdatabasdesign 2I-4067 HT99. Relationsalgebra. som resultat!

WCMS-15, Webbutvecklare CMS

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

Databaser. Vad du ska lära dig: Ordlista

INNEHÅLL SQL DEL 2. Funktioner inbyggda Aggregatfunktioner Skalärfunktioner. Chapter 11. Beginning SQL Server 2008 for Developers

Tentamen 2I1033, IT i Organisationer och Databasteknik lördag 17/4 2004, kl LÖSNINGSFÖRSLAG

16/12/14. Databasteknik och informationssystem DD1370. Dagens föreläsning (den sista!) Motivera med kokbok! Idag: Inga knappar L. Dagens föreläsning

Grunderna i SQL del 1

3. Dynamiska webbplatser, 20 Yhp (4 v)

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

Frågespråk och SQL. nikos dimitrakas rum 2423

Tentamen i Databasteknik

Tentamen för DD1370 Databasteknik och informationssystem

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

Introduktion MySQL och MariaDB

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

Databasutveckling Introduktion till SQL och TSQL

Tentamen för DD1370 Databasteknik och informationssystem

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

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

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

Vad är PostGIS? Hmm, PreGIS måste vara papperskartor..., men vad är PostGIS...?

MODELLER OCH SPRÅK FÖR RELATIONSDATABASER: Relationsalgebra, Relationskalkyl (Tuple calculus) & SQL

Databaser och. SQL, utsökningar mot en tabell

Idag. 1. En enkel databas. 2. Prata med databaser (frågepsråket SQL)

Karlstads Universitet, Datavetenskap 1

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

Databasteknik. Vad är. Vad är databaser bra till? data? föreläsare: Kjell Lindqvist. och NADA. databaser? och. vad är de bra för?

Exempel-tentamen 1. + Lösningsförslag. Inga hjälpmedel är tillåtna.

Vyer, Prepared Statements, Triggers

Trafla databasen vi hämtar data från (remote export) ligger på en godtycklig maskin i nätverket. Den här databasen är en MIMER databas.

Lösningar till tentamen i EDAF75

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 DATABASTEKNIK - 1DL116, 1MB025, 1DL124

Tentamen. TDDB38 - Databasteknik

Föreläsning 5: Relationsmodellen

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

Tentamen för DD1370 Databasteknik och informationssystem

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

Från Excel laddningar till web arbetsflöden

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

Relationskalkyl (RK)

Databasspråket SQL - online.

Starta MySQL Query Browser

Lösningsförslag, tentamen i Databaser

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

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

Databasspråket SQL - online.

Tentamen för DD1370 Databasteknik och informationssystem

Transkript:

ÖVNING 14 SAL(SalsId, Max_antalpersoner) AVSTÅND(Sal1, Sal2, Längd) DANSARE(Namn, Skostorlek, Längd) BALETT(Namn, Upphovsman) ROLL(RollNamn, BalettNamn) UPPSÄTTNING(BalettNamn, Från, Till) ROLLINNEHAV(Dansare, Roll, Balett, Från, Till) (Primärnycklar är angivna med fetstil.) AVSTÅND.Sal 1 << Sal.SalsId AVSTÅND.Sal2 << Sal.SalsId ROLL.Ballettnamn << BALETT.Namn UPPSÄTTNING.Balettnamn << BALETT.Namn ROLLINNEHAV.Dansare << DANSARE.Namn ROLLINNEHAV.(Roll, Balett) << ROLL.(RollNamn, BalettNamn) ROLLINNEHAV.(Ballett, Från, Till) << UPPSÄTTNING(BalettNamn,F rån, Till). Formulera följande frågor i a) SQL b) Relationsalgebra 1) Vilka dansare är över två meter långa och har dansat i Svansjön? PI Namn (SIGMA Längd > 2.0 AND Balett= Svansjön (ROLLINNEHAV) JOIN ROLLINNEHAV.Dansare=DANSARE.Namn DANSARE) SELECT Namn FROM DANSARE, ROLLINNEHAV WHERE DANSARE.Namn=ROLLINNEHAV.Dansare AND Längd > 2.0 AND Balett = Svansjön

2) Vlka dansare har dansat i en balett skriven av Pucini och vilken är deras skostorlek? Pucini-baletter := PI Namn (SIGMA Upphovsman = Pucini (BALETT)) Pucini-dansare := PI Dansare ( Pucini-baletter JOIN Balett = Namn ROLLINNEHAV) PI Namn, Skostorlek ( ROLLINNEHAV JOIN ROLLINNEHAV.Dansare=DANSARE.Namn DANSARE) SELECT Namn FROM DANSARE, ROLLINNEHAV, BALETT WHERE BALETT.Upphovsman= Pucini AND BALETT.Namn=ROLLINNEHAV.Balett AND DANSARE.Namn=ROLLINNEHAV.Dansare 3) Vad är genomsnittlig längd för de dansare som dansat i baletten Svansjön eller i baletten Törnrosa? F AVG(Längd) (SIGMA Baltett= Törnrosa OR Balett= Svansjön (ROLLINNEHAV) JOIN DANSARE) SELECT AVG(Längd) AS Dansarmedellängd FROM DANSARE, ROLLINNEHAV WHERE DANSARE.Namn=ROLLINNEHAV.Dansare AND (Balett = Törnrosa OR Balett = Svansjön ) 4) Vilka upphovsmän har skrivit mer än en balett? ROLLINNEHAV.Dansare=DANSARE.Namn Kandidater(Mästare, Antal_baletter) := Upphovsman F COUNT(Namn) (BALETT) Resultat(Namn) := PI Mästare (SIGMA Antal_baletter > 1 (Kandidater)) SELECT Upphovsman FROM BALETT GROUP BY Upphovsman HAVING COUNT(Namn) > 1

5) Vilka dansare har inte dansat i baletten Svansjön men i baletten Törnrosa? Rosorna PI (Dansare) (SIGMA Balett= Törnrosa (ROLLINNEHAV)) Svanorna PI (Dansare) (SIGMA Balett= Svansjön (ROLLINNEHAV)) Svar Rosorna - Svanorna CREATE VIEW Rosorna AS (SELECT Dansare FROM ROLLINNEHAV WHERE Balett = Törnrosa ) CREATE VIEW Svanorna AS (SELECT Dansare FROM ROLLINNEHAV WHERE Balett = Svansjön ) SELECT * FROM Rosorna EXCEPT SELECT * FROM Svanorna 6) För vilka baletter finns det inga uppsättningar? Uppsatta_baletter PI (BalettNamn) (UPPSÄTTNING) Baletter PI (Namn) (BALETT) Svar Baletter - Uppsatta_baletter CREATE VIEW Uppsatta_baletter AS (SELECT BalettNamn FROM UPPSÄTTNING) CREATE VIEW Baletter AS (SELECT Namn As BalettNamn FROM BALETT) SELECT * FROM Baletter EXCEPT SELECT * FROM Uppsatta_baletter

7) Vilka dansare har dansat alla rollerna i Svansjön? Svanroller(RollNamn) PI (RollNamn) ( SIGMA BalettNamn= Svansjön (ROLL)) Dansat(Namn, RollNamn) PI (Dansare, Roll) ( SIGMA Balett= Svansjön (ROLLINNEHAV)) (Notera att man behöver kontrollera att det verkligen är svansjö-roller i sista satsen, pga det kan finnas roller med samma namn i olika baletter!) Svar Dansat KVOT Svanroller Jaha, nu får det alltså inte finnas någon svanroll som kandidaterna inte dansat: SELECT D.Namn FROM DANSARE D WHERE NOT EXISTS (SELECT R.RollNam FROM ROLL R WHERE R.BalettNamn= Svansjön AND R.RollNamn NOT IN (SELECT RI.Roll FROM ROLLINNEHAV RI WHERE Balett= Svansjön AND RI.Dansare=D.Namn)

ÖVNING 15 Betrakta relationsdatabasschemat i föregående uppgift och formulera följande frågor i a) SQL b) Relationsalgebra 8) Hur många personer får plats i den sal som ligger närmast Pelarsalen? (Ta hänsyn till svårigheten att en viss sal kan finnas representerad som antingen Sal1 eller Sal2 eller båda delar). Salarna := PI (SalsId, Maxantal_personer, Längd) (SIGMA (SalsId=Sal1ANDSal2= Pelarsalen )OR(Salsid=Sal2ANDSal1= Pelarsalen )(AVSTÅND X SAL)) Kortast := F Min (Längd) (Salarna) Svar PI (Salsid, Maxlängd)(SIGMA (Salarna.Längd=Kortast.Längd)(Salarna X Kortast)) CREATE VIEW temp_sal AS (SELECT Salsid, Maxantal, Längd FROM Sal, AVSTÅND WHERE ((SalsID = Sal1 AND Sal2= Pelarsalen ) OR (SalsId = Sal2 AND Sal1= Pelarsalen)) SELECT SalsID, Maxantal FROM temp_sal WHERE Längd = (SELECT min(längd) FROM tempsal) Alternativ: CREATE VIEW PELARGRANNAR AS ((SELECT Sal2 AS Sal, Längd FROM AVSTÅND WHERE Sal1= Pelarsalen ) UNION (SELECT Sal1 AS Sal, Längd FROM AVSTÅND WHERE Sal2= Pelarsalen )) SELECT SalsId, Maxantal FROM PELARGRANNAR, SAL WHERE SalsID=Sal AND Längd = (SELECT min(längd) FROM PELARGRANNAR)

9) Vilka dansare har dansat i åtminstone samma baletter som Kanneli Kallanko? Dansat_i_balett(Dansare, Balett) PI (Dansare, Balett) (ROLLINNEHAV) Kannelli_baletter(Balett) PI (Balett) (SIGMA Dansare= Kanelli Kallanko (ROLLINNEHAV)) Svar Dansat_i_balett KVOT Kanelli_baletter SELECT D.Namn FROM DANSARE D WHERE D.Namn NOT = Kannelli Kallanko AND NOT EXISTS /* Får inte finnas ngn balett som Kannelli dansat som inte jag har dansat */ WHERE R1.Dansare = Kannelli Kallanko WHERE R2.Dansare = D.Namn))

10) Vilka dansare har dansat i exakt samma baletter som Kanneli Kallanko? Dansat_i_balett (Dansare, Balett) PI (Dansare, Balett) (ROLLINNEHAV) Kannelli_baletter(Balett) PI (Balett) (SIGMA Dansare= Kanelli Kallanko (ROLLINNEHAV)) Ej_Kanneli_baletter(Balett) PI (Balett) (BALETT) Kannelli_baletter Dansat_i_nåt_mer PI (Dansare) (Ej_Kannelli_balleter NATURAL JOIN Dansat_i_balett) Svar (Dansat_i_balett KVOT Kanelli_baletter) Dansat_i_nåt_mer SELECT D.Namn FROM DANSARE D WHERE D.Namn NOT = Kannelli Kallanko AND NOT EXISTS /* Får inte finnas ngn balett som Kannelli dansat som inte jag har dansat */ WHERE R1.Dansare = Kannelli Kallanko WHERE R2.Dansare = D.Namn)) AND NOT EXISTS /* Får inte finnas ngn balett som jag dansat som inte Kanelli har dansat */ WHERE R1.Dansare = D.Namn WHERE R2.Dansare = Kanelli Kallanko ))

11) Vilka (par av) dansare har dansat i exakt samma baletter? En generell relationsalgebra lösning saknas än så länge, alla förslag mottages ödmjukt. SELECT D1.Namn, D2.Namn FROM DANSARE D1, DANSARE D2 WHERE D1.Namn NOT = D2.Namn AND NOT EXISTS /* Får inte finnas ngn balett som D1 dansat som inte D2 har dansat */ WHERE R1.Dansare = D1.Namn WHERE R2.Dansare = D2.Namn)) AND NOT EXISTS /* Får inte finnas ngn balett som D2 dansat som inte D1 har dansat */ WHERE R1.Dansare = D2.Namn WHERE R2.Dansare = D1.Namn))