Exempel-Tentamen III

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

Tentamen plus lösningsförslag

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen Lördag 8 juni kl

Lösningsförslag till Exempel tentamen

Exempel tentamen. Skriv bara på en sida av pappret Skriv namn på varje papper Skriv läsligt, annars rättas inte tentamen Alla hjälpmedel är tillåtna

Tentamen. Databasmetodik Lördag 27 september 2014 kl

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

Tentamen för DD1370 Databasteknik och informationssystem

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

Analytisk relationsdatabasdesign

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

Tentamen i Databasteknik

Tentamen i Databasteknik

Logisk databasdesign

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

Tentamen för DD1370 Databasteknik och informationssystem

Konceptuella datamodeller

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

Informationssystem och databasteknik

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

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

Lösningar till tentamen i EDAF75

Relationsdatabasdesign

Tentamen för DD1370 Databasteknik och informationssystem

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

Databaser och Datamodellering Foreläsning IV

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

Tentamen för DD1370 Databasteknik och informationssystem

Lösningsförslag till Tentamen,

Lösningsförslag Tentamen, 25 april 03

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

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

NORMALISERING. Mahmud Al Hakim

Tentamen för DD1370 Databasteknik och informationssystem

Karlstads Universitet, Datavetenskap 1

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

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

Karlstads Universitet, Datavetenskap 1

Relationsmodellen och syntetisk databasdesign

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

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

Design och underhåll av databaser

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

Structured query language (SQL)

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

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

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

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

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

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

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

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

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

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

IT i organisationer och databasteknik

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

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

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

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

Tentamen för DD1370 Databasteknik och informationssystem

Webbprogrammering, grundkurs 725G54

Databaser. Vad du ska lära dig: Ordlista

Tentamen. TDDB38 - Databasteknik

Tentamen i. Databasteknik

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

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

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

Informationssystem och Databasteknik

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

TDDI 60 Tekniska databaser

Databaser Design och programmering

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Pga att (Nummer och Typ) tillsammans bestämmer övriga attribut funktionellt väljer vi (Nummer, Typ) till primärnyckel:

Starta MySQL Query Browser

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

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

Tentamen i Databasteknik

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

Databasspråket SQL - online.

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

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

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

Grunderna i SQL del 1

Inga hjälpmedel är tillåtna

Grunderna för relationsmodellen!

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

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

Datalager och datautvinning

TENTAMEN TDDB77 Databaser och Bioinformatik 17 mars 2005, kl 8-12

2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY!, där RIDKURS.KursId = KURS.KursId 3NF Hästnamn, Art, NY! NY! NY! NY!

Tentamen DATABASTEKNIK - 1DL116

Concepts learned this far. ER till relationer. ER till relationer. ER till relationer. TDDD12 Database Technology

Databaser och databasdesign. Den relationella modellen, normalisering och modellering (2)

Sample exam questions. Database exam TIG058

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

Tentamen DATABASTEKNIK - 1DL116, 1MB025

Transkript:

Institutionen för Data- och Systemvetenskap IT-universitetet Maria Bergholtz Exempel-Tentamen III Inga hjälpmedel tillåtna (syntaxsammanställning behövs inte på denna tentamen) Skriv bara på en sida av pappret Skriv namn på varje papper Skriv läsligt, annars är det svårt att rätta tentamen Lycka till!

Sidan 2 av 6 Uppgift KONSTRUERA ETT KONCEPTUELLT SCHEMA Partiella attribut (attribut som har minvärde 0), samt partiella associationer/relationer (associationer/relationer som har båda rollerna partiella, dvs med minvärde 0 i båda rollerna) ska undvikas! En hundutställning består av ett antal bedömningar av hundar. Varje bedömning kan ses som en tävling där en hund vinner. Vinnande hundar i varje bedömning går vidare till final-bedömningen där någon hund väljs till Best in Show.. Hundar tilllhör olika hundraser. Varje ras hör till en viss grupp, det finns olika grupper, bl a drivande hundar, sällskapshundar, dvärghundar och spetsar De olika bedömningarna av hundar (se punkt ) är baserade på grupper, dvs en bedömning av drivande hundar sker, en bedömning av spetsar sker och så vidare. Sen tävlar vinnande spets med övriga grupp-vinnare om titeln Best in Show. För varje grupp finns ett antal bedömningskriterier. För spetsar bedöms noslängd, svanslängd, mankhöjd och färg. För drivande hundar bedöms skall-kvalitet, noslängd och mankhöjd. Olika bedömningskriterier har olika typer av betyg. För skall-kvalitet gäller betygen utmärkt, gott och otillfredställande. För mankhöjd gäller lagom, liten eller för hög. När en hund deltar i en bedömning erhåller den ett betyg på varje kriterium som gäller för den grupp hunden tillhör. Hunden Fido är av typen Spets och är 40 cm hög (mankhöjd). Spetsar har median-mankhöjden 50 cm. Fido blev Best in Show på utställningen Stora Stockholm som gick av stapeln i Stockholm december 2005. Karo vann drivande-hund-gruppen på Crufts i London januari 2005. Collien Lassie (tillhör gruppen sällskapshundar) deltog i Stora Stockholm i december 2005 men placerade sig inte. (8 p)

Sidan 3 av 6 GRUPPBEDÖ MNING Domare :.. gäller INDIVIDBEDÖ MNING Placering :....*..* avser KRITBEDMNING Erhållet_värde :....* ingår_i UTSTÄLL NING UNamn :.. Stad :....* avser gäller KRITVAL Skala :.. Enhet :.. BiS för HUNDTYP Ras :.. Median_mankhöjd :.. HUND Namn :.. Mankhöjd :.. av_typ KRITERIUM Namn :.. UNIK avser Uppgift 2 a) Konstruera en tabell som är i NF men inte är i 2NF. (2p) Krav på lösning: En tabell med angivet namn, angivna kolumner och angiven primärnyckel. Eventuella funktionella beroenden (som råder mellan kolumnerna) som ni anser behövs. Motivering till varför tabellen är i 2NF men inte i 3NF. TABELL(A, B, C, D) där A,B C, D B C Eftersom C är bestämd bara av halva nyckeln (A, B) och dsv C är bestämd av {B} och {B} utgör en delmängd till {A, B} så har vi ett partiellt funktionellt beroende mellan C och nyckeln. b) Betrakta följande definition av tabellen OSTTILLVERKNING: CREATE TABLE OSTTILLVERKNING( OstID integer NOT NULL, OstNamn varchar(50) NOT NULL, Antal integer NOT NULL Datum Date NOT NULL, Pris Integer NOT NULL, Primary key(ostid, Datum); Storlek datatyper: Varchar: byte per allokerat tecken, en varchar(50) upptar 50 bytes Integer: 4 byte

Sidan 4 av 6 Date: 4 byte Följande funktionella beroenden råder: OstId, Datum - Pris, OstNamn, Antal Antal Pris a) Tabellen är i NF, Normalisera denna tabell till högsta möjliga normalform. För varje normaliseringssteg du gör, motivera varför du gör det! (4p) OSTPRIS(Antal, Pris) OSTTILLVERKNING(OstiID, Datum, OstNamn, Antal), där OSTTILLVERKNING. Antal << OSTPRIS.Antal Skälet till att OSTPRIS skapades är att Pris är transitivt bestämd av primärnyckeln (OstiID, Datum Antal, Antal Pris och Antal ingår inte i en kandidatnyckel). b) Vad effekter kommer normaliseringen att leda till i just detta fall med avseende på hur mycket utrymme databasen kommer att uppta och hur lång tid den kommer att ta att läsa eller skriva (du kan anta att läsningar/skrivningar sker ad hoc, dsv alla rader läses ibland, enstaka rader ibland blandat med skrivningar). Motivera ditt svar! (4p) Vanligen kan man förvänta sig att databasen tar mindre plats normaliserad än icke normaliserad. I detta fall viner vi 4 byte ( integer) för att vi slipper upprepa Pris på varje rad i OSTTILLVERKNING. Å andra sidan måste vi dubbellagra den främmande nyckeln Antal som också tar 4 byte. Om antalet unika värden i Antal är många är det inte säkert att databasen kommer att bli mindre även om vi normaliserar. Om å andra sidan har en distribution av värden för kolumnen Antal som innebär att få unika värden finns (låt oss anta att man kanske tillverkar i fasta antal, säg 0, 00 och 000 och inga andra Antal) så kommer vi att slippa upprepa Pris för alla de rader i OSTTILLVERKNING som uttnyttjar något av det tre värdena på Antal. Läsning av databasen tar vanligen längre tid i normaliserat tillstånd eftersom join kostar. Vissa transaktioner (de som bara går mot _endera_ OSTPRIS _eller_ OSTTILLVERKNIG) kommer dock att går fortare i normaliserat tillstånd. Skrivning går snabbar mot normaliserade tabeller, här behöver vi bara lägga in Pris:et på EN rad (i OSTPRIS) osv för uppdatering och bortttag. Uppgift 3 Betrakta följande konceptuella schema:

Sidan 5 av 6 GEO_OBJEKT Namn :.. UNIK STAD Antal_invånare :.. Borgmästare :....* mitt_land huvud_stad LAND Antal_innvånare :.. 0.. gränsar_till Översätt det konceptuella schemat till ett databas-schema. Du kan använda följande struktur för definition av databas (dvs CREATE TABLE-satser ska inte skrivas): (6p) TABELLNAMN(Primärnyckelkolumn, Primärnyckelkolumn2, annankolumn, annankolumn2) TABELLNAMN2(Primärnyckelkolumn, annankolumn, annankolumn2) TABELLNAMN2.(annankolumn,annankolumn2)<<TABELL.(Primärnyckelkolumn,Primärnyckelkolumn2). Där sista raden betyder att tabellen TABELLNAMN2 har en främmande nyckel mot tabellen TABELLNAMN. GEOOBJEKT(Namn) STAD(Namn, Antal_invånare, Borgmästare, MittLand), STAD.MittLand << LAND.Namn LAND(Namn, Antal_invånare, Huvudstad), LAND.Huvudstad << STAD.Namn GRÄNSAR_TILL(Land, Land2),GRÄNSAR_TILL.Land<< LAND.Namn, GRÄNSAR_TILL.Land2 << LAND.Namn Alternativt en egen tabell för det partiella attributet MittLand i STAD. Uppgift 4 Betrakta följande tabeller: SJUKHUS(Namn, Adress, Postnr, Stad, SJUKHUSDirektör ) KLINIK(KLINIKNamn, SJUKHUSNamn, Klinikföreståndare) RUM(RUMNr, KLINIKNamn, SJUKHUSNamn, Ickerökare) SÄNG(SÄNGNr, RUMNr, KLINIKNr, SJUKHUSNamn, Mjukhet) PERSON(Pnr, Namn, Adress, Postnr, Stad, Telefon, Närmaste_anhörig) INTAGNING(Pnr, SÄNGNr, RUMNr, KLINIKNr, SJUKHUSNamn) Primränycklar i fetstil. Främmande nycklar: KLINIK.SJUKHUSNamn << SJUKHUS.Namn RUM.(KLINIKNamn, SJUKHUSNamn) << KLINIK.(KLINIKNamn, SjukhusNamn) SÄNG.(RUMNr, KLINIKNamn, SjukhusNamn) << RUM. (RUMNr, KLINIKNamn, SjukhusNamn)

Sidan 6 av 6 INTAGNING.(SÄNGNr, RUMNr, KLINIKNamn, SjukhusNamn) << SÄNG.(SÄNGNr, RUMNr, KLINIKNamn, SjukhusNamn) INTAGNING.Pnr << PERSON.Pnr Definiera följande fråga i SQL och relationsalgebra: Ta fram alla sjukhus som haft minst 30 personer inlagda men aldrig några personer från New-York (5+5p) SELECT SjukhusNamn AS Namn FROM INTAGNING GROUP BY SjukhusNamn HAVING COUNT(*) > 30 /* icke unika personer ok här */ UNION SELECT SJUKHUS.Namn FROM SJUKHUS WHERE SJUKHUS.Namn NOT IN (SELECT SJUKHUS.Namn FROM SJUKHUS, INTAGNING, PERSON WHERE SJUKHUS.Namn = INTAGNING.SjukhusNamn AND INTAGNING.Pnr = PERSON.Pnr AND PERSON.Stad = New York ) IckeNYsjukhus(Namn) PI Namn (SJUKHUS) PI Sjukhusamn (SIGMA Stad= New York ((PERSON X INTAGNING) X SJUKHUS) PERSON.Pnr= INTAGNING.SjukhusNamn= INTAGNING.Pnr SJUKHUS.Namn Antal_per_sjukhus(Namn, Antal) SjukhusNamn G COUNT(*) (INTAGNING) Svar PI Namn (SIGMA Antal > 30 (Antal_per_sjukhus X IckeNYsjukhus)) Antal_per_sjukhus.Namn = IckeNYsjukhus.Namn