Databaser Obligatorisk opgave 2 Vejledende løsning

Relaterede dokumenter
Take-home Eksamen. DM505 Design og programmering af databaser. Syddansk Universitet Institut for Matematik og Datalogi

Databaser Obligatorisk opgave 1

Eksamen Uden hjælpemidler - normeret til 60 minutter

Sidste forelæsning. Jacob Aae Mikkelsen. 28. april 2013 IMADA. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28.

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Relationel Algebra og SQL

Danmarks Tekniske Universitet

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.

Danmarks Tekniske Universitet

Import af rekursivt (parent-child) hierarki i Palo

Danmarks Tekniske Universitet

Introduktion til SQL queries

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Danmarks Tekniske Universitet

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Danmarks Tekniske Universitet

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Datalagring og formater

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer.

Danmarks Tekniske Universitet

Merging og Hashing (del I)

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

Views etc. Databaser

Datastrukturer (recap)

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Skriftlig Eksamen Algoritmer og Sandsynlighed (DM538)

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen (bemærk at log n betegner totals logaritmen): n 2 (log n) 2 2.

Eksamen, DSDS, efterår 2007

Database optimering - Indeks

1. Basal select med (stjerne)

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 5. 5n 2 5 logn. 2 logn

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 7 n 1/ log n. (log n) 4

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n n (log n) 2. n 2 + log n 3 n. n n (log n)

Sortering. Eksempel: De n tal i sorteret orden

DB undervisning 01-01

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Database design for begyndere

Danmarks Tekniske Universitet

Datastrukturer (recap)

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach 2002

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

Begrænsninger i SQL. Databaser, efterår Troels Andreasen

Danmarks Tekniske Universitet

1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Sortering. Eksempel: De n tal i sorteret orden

Sortering af information er en fundamental og central opgave.

DM507 Algoritmer og datastrukturer

Databasesystemer. IT Universitetet i København 16. januar 2006

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

En Kort Introduktion til Oracle

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 7 n 1/2 2 n /n 3 2logn n 2 /logn

Sortering af information er en fundamental og central opgave.

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DM507 Algoritmer og datastrukturer

Skriftlig eksamen i. Databaser. Vinter 2002/2003. Vejledende løsninger

Views. Et view er en relation defined ud fra gemte tabeller ( base tables ) og andre views To typer:

Velkommen til kursusevaluering i Blackboard

SQL Server 2008 Spatiale eksempler. Plan & Miljø, GIS

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 23n log n. 4 n (log n) log n

Skriftlig eksamen i kurset. Informationssystemer

Eksempel på en database: studenter, kurser, eksamener

DM507 Algoritmer og datastrukturer

Datastrukturer (recap) Datastruktur = data + operationer herpå

Obligatorisk opgave 2. SQL, relationel algebra og relationel kalkyle

Opgave 1 Basal select med (stjerne)

Opgave 1 (10%) I det følgende angiver log n 2-tals-logaritmen af n. Ja Nej. n+3n er O(2n)? n 6 er O(n 5 )? nlogn er O(n 2 /logn)? 4n 3 er O(3n 4 )?

DM507 Algoritmer og datastrukturer

Eksamen, DSDS, efterår 2008

SQL-opgaver 5 løsning

Eksamen, DSDS, forår 2009

Ruko SmartAir. Updater installation

Sortering i lineær tid

DM507 Algoritmer og datastrukturer

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 3/2. n logn (3/2) n. 2 3logn (3/2) n

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 2 2 n 1/n (logn) n. n 2

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n

Indhold. Download driver Find version af Windows Hent drivers til Windows Udpak driver... 6

En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Indhold

Danmarks Tekniske Universitet

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Science and Technology EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

Indlæse GEDCOM-fil i FamilySearch og kopiere information til FamilyTree

Buildvejledning (Release, patch og testversion)

Transkript:

University of Southern Denmark Department of Mathematics and Computer Science Databaser Obligatorisk opgave 2 Vejledende løsning Afleveres senest: Søndag d. 5. maj kl 23.59

Spilleregler Denne obligatoriske opgave indeholder 3 opgaver, der alle skal besvares. Hvis ikke der er gjort et anstændigt forsøg på at løse alle opgaver, vil den ikke blive godkendt. Opgaven skal besvares individuelt (det er altså ikke en gruppeopgave). Besvarelsen afleveres via Blackboard senest søndag d. 5. maj kl 23.59. Er din besvarelse ikke afleveret inden, betragtes dette som udeblivelse fra eksamen. Din besvarelse skal uploads som én pdf fil, hvor dit navn tydeligt fremgår af den første side. Du skal uddybe dine besvarelser, med beskrivende tekst, men du behøver ikke at gentage opgavens tekst i din besvarelse. Det kan tage lang tid at lave pæne elektroniske figurer af B+træer og hashtabeller 1. Det er derfor ikke et krav at det er lavet elektronisk; en scannet håndskrevet løsning er helt fin. 1 SQL (35%) Betragt følgende relationer, med tilhørende data, der findes i filen: airline.sql: Flights(flno, origin, destination, distance, departs, arrives, price) Aircraft(aid, aname, crusingrange ) Certified (eid, aid) Employees( eid, ename, salary) Bemærk at der både er piloter og andre ansatte i Employees relationen. Enhver pilot er certificeret til at flyve mindst ét fly, og kun piloter er certificeret til at flyve. Skriv følgende forespørgsler i SQL, og angiv også resultatet fra datasættet, når du udfører forespørgslen. 1. For hver pilot, der er certificeret til at flyve mere end 3 fly, find eid, og maksimum crusing range for de fly piloten er certificeret til. 2. Find navnene på piloter, hvis løn er mindre end prisen på den billigste rute fra Los Angeles til Honolulu 3. Udskriv navnene på piloter, der kan flyve et fly med crusingrange større end 3000, men ikke er certificeret til at flyve noget Boing fly. 1 Forelæseren har brugt Pencil (http://pencil.evolus.vn/) og filerne til figurerne kan findes på kursets hjemmeside, mens dia (http://projects.gnome.org/dia/) eller OpenOffice Draw (http://www.openoffice.org/) også er set anvendt af andre. 2

1 SELECT C.eid, MAX (A.crusingrange) FROM Certified C INNER JOIN Aircraft A ON C.aid = A.aid GROUP BY C.eid HAVING COUNT (*) > 3 ; Som på datasættet giver følgende eid max -----------+------ 269734834 8430 567354612 8430 142519864 8430 2 SELECT DISTINCT E.ename FROM Employees E WHERE E.salary < ( SELECT MIN (F.price) FROM Flights F WHERE F.origin = Los Angeles AND F.destination = Honolulu ); Som på datasættet giver ename ------------- Milo Brooks 1 SELECT DISTINCT E.ename FROM Employees E INNER JOIN Certified C ON C.eid = E.eid INNER JOIN Aircraft A ON C.aid=A.aid WHERE A.crusingrange > 3000 AND E.eid NOT IN ( SELECT C1.eid FROM Certified C1 3

); INNER JOIN Aircraft A1 ON C1.aid = A1.aid WHERE A1.aname LIKE Boeing% Med resultat ename ----------------- Joseph Thompson Angela Martinez Lawrence Sperry William Jones Eric Cooper En typisk fejl her har været at lave følgende: SELECT DISTINCT E.ename FROM Employees E, Certified C, Aircraft A WHERE E.eid= C.eid AND A.aid =C.aid AND A.crusingrange > 3000 AND A.aname NOT LIKE %Boeing% ; Her er det fly der er har crusingrange større end 3000 ikke et boing fly, men piloten kan godt være certificeret til at flyve et boing fly Lav også et view der har følgende schema Pilots(eid, ename, salary) og indeholder alle piloter, men ikke andre ansatte. Gør så det er muligt at opdatere piloters f.eks. løn, ved at opdatere i viewet. Det kan laves således: CREATE VIEW pilots AS SELECT E.eid, E.ename, E.salary FROM employees E WHERE E.eid IN ( SELECT C.eid FROM certified C ); og kan opdateres således: CREATE RULE pilots_update AS ON UPDATE TO pilots DO INSTEAD UPDATE employees SET ename = NEW.ename, salary = NEW.salary, eid = NEW.eid WHERE employees.eid = OLD.eid; 4

Her kan man opdatere alle oplysningerne, ikke kun løn. Generelt er der flere der har brugt NATURAL JOIN. Det skal man passe på med, da forespørgslen kan ændres hvis der indsættes en kolonne i en af tabellerne med samme navn som en af de andre tabeller. Det anbefales at undlade at bruge NATURAL JOIN i produktionskode. 5

2 B+træ (25%) btree Exported at: Thu Apr 11 2013 23:10:26 GMT+0200 (CEST) Tag udgangspunkt i følgende B+træ Primes 50 11 24 69 90 112 138 1 3 11 20 24 29 50 53 69 72 90 94 97 100 112 115 121 125 138 141 142 145 Udfør de følgende operationer. Tag hver gang udgangspunkt i det originale træ fra figuren, ikke det der følger fra den foregående opgave. Beskriv hvad du gør, ikke bare træet efter operationen. Hvis det kun er en del af træet der påvirkes, er det i orden kun at tegne den del der påvirkes, så længe det er klart hvilken del det er. 1. Indsæt værdien 57 Der er plads i bladet, efter at der er søgt efter 57, så værdien kan indsættes uden ændringer i træets struktur. 1. Indsæt værdien 118 Efter søgning konstateres det at bladet er fyldt. Det skal derfor splittes, og nøglen 118 kopieres til forældreren. Den skal også splittes fordi den er fyldt, men her flyttes 112 til forældreren (roden). 6

1. Slet værdien 72 Ved at slette 72 bliver bladet for lidt fyldt, men vi kan låne fra højre blad. Herved skal søgenøglen i forældreren opdateres til 94. 1. Slet værdien 3 Når 3 skal slettes bliver bladet ugyldigt, da det ikke er halvt fyldt. Der kan ikke lånes en værdi fra søsteren, skal de to blade slåes sammen. I forældreren skal der fjernes en søgenøgle, og bliver derved for lidt fyldt. Her kan der lånes fra søsteren, og værdien i roden rettes ligeledes. Bemærk: Typisk fejl: Der er flere der har stoppet med en ugyldig indre knude. Derved er træet ikke gyldigt. 7

3 Hash strukturer (40%) extensible Extensible hashing Exported at: Sat Apr 13 2013 00:07:35 GMT+0200 (CEST) Tag udgangspunkt i følgende extensible hashing struktur. Her anvender vi hashfunktionen h(x) = x for at gøre det simpelt. Extensible Hashing i = 3 000 00010 00001 2 001 010 01001 01011 3 011 01110 3 100 10111 10000 2 101 110 111 11001 11000 3 11110 3 Udfør de følgende operationer. Tag hver gang udgangspunkt i den originale figur, ikke det der følger fra den foregående opgave. 1. Indsæt værdien 01101 2. Indsæt værdien 00111 3. Indsæt værdien 11011 8

1 9

2 10

3 11

linear Linear hashing Exported at: Sat Apr 13 2013 00:35:32 GMT+0200 (CEST) Tag udgangspunkt i følgende linear hashing struktur. h(x) = x for at gøre det simpelt. Linear Hashing Her anvender vi hashfunktionen i = 3 n = 5 r = 6 0 10000 1 01001 2 00010 01010 Bem: f = 2 pmax = 0.8 3 00011 4 00100 Udfør de følgende operationer. Tag hver gang udgangspunkt i den figur der opstår ved udførsel af de foregående opgaver. 1. Indsæt værdien 01101 2. Indsæt værdien 00110 3. Indsæt værdien 11100 Hint: Det er ikke nødvendigt at udvide lineært hvis strukturen er præcis 80% fyldt, først når det overstiges. 12

1 2 13

3 Bemærk: En typisk fejl er at det er værdien fra overflow siden der flyttes ned i den nye spand. Den skal først rykkes næste gang til spand med nummeret 6. Hvilket ses på de tre bagerste bits. 14