Tentamen 2003-08-22 DATABASTEKNIK - 1DL116



Relevanta dokument
Tentamen DATABASTEKNIK - 1DL116, 1MB025

Tentamen DATABASTEKNIK - 1DL116, 1MB025

Tentamen DATABASE TECHNOLOGY - 1MB025

Tentamen DATABASTEKNIK - 1DL116

Database course summary

Final Exam DATABASE TECHNOLOGY - 1DL300

Tentamen DATABASTEKNIK - 1DL116, 1MB025

Vyer, Prepared Statements, Triggers

Introduktion till Entity Framework och LINQ. Källa och läs mer

Tentamen DATABASTEKNIK - 1DL116, 1MB025, 1DL124

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

Isolda Purchase - EDI

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

Beijer Electronics AB 2000, MA00336A,

Tentamen. TDDB38 - Databasteknik

TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18

Installation av F13 Bråvalla

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

Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas

Module 1: Functions, Limits, Continuity

Support Manual HoistLocatel Electronic Locks

Svar till tentamen DATABASTEKNIK - 1DL poäng

Preschool Kindergarten

Fillagring och indexering

Karlstads Universitet, Datavetenskap 1

An English version of the questions is found at the back of each page.

Tentamen i Databasteknik

Support for Artist Residencies

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR

Materialplanering och styrning på grundnivå. 7,5 högskolepoäng

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

2.1 Installation of driver using Internet Installation of driver from disk... 3

Structured query language (SQL)

Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm

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

Karlstads Universitet, Datavetenskap 1

Datasäkerhet och integritet

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

Tentamen i. Databasteknik

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

Frågebearbetning. Thomas Padron-Mc Carthy

SVENSK STANDARD SS-EN ISO 19108:2005/AC:2015

Calculate check digits according to the modulus-11 method

1. Varje bevissteg ska motiveras formellt (informella bevis ger 0 poang)

Transaktioner och samtidighet

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

Rastercell. Digital Rastrering. AM & FM Raster. Rastercell. AM & FM Raster. Sasan Gooran (VT 2007) Rastrering. Rastercell. Konventionellt, AM

Documentation SN 3102

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.

Rättningsmall tenta den 25e oktober Uppgift 1. Uppgift 2. se slides

TDDB 48 Database technology

WhatsApp finns för dessa plattformar:

1. Unpack content of zip-file to temporary folder and double click Setup

Starta MySQL Query Browser

Alternativet är iwindows registret som ni hittar under regedit och Windows XP 32 bit.

Det här med levels.?

Övning 5 ETS052 Datorkommuniktion Routing och Networking

Kursplan. IK1051 Behörighetsgivande kurs i databassystem för masterprogram i Business Intelligence. 7,5 högskolepoäng, Grundnivå 1

CM FORUM. Introduktion till. Configuration Management (CM) / Konfigurationsledning. Tobias Ljungkvist

732G16: Databaser - Design och programmering

Problem som kan uppkomma vid registrering av ansökan

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

Tentamen i Databasteknik

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE

STORSEMINARIET 3. Amplitud. frekvens. frekvens uppgift 9.4 (cylindriskt rör)

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

Item 6 - Resolution for preferential rights issue.

CUSTOMER READERSHIP HARRODS MAGAZINE CUSTOMER OVERVIEW. 63% of Harrods Magazine readers are mostly interested in reading about beauty

Swedish National Data Service

TDDB 38 Database technology

CHANGE WITH THE BRAIN IN MIND. Frukostseminarium 11 oktober 2018

TENTAMEN TDDB77 Databaser och Bioinformatik 22 augusti 2006, kl 14-18

Styrteknik : Funktioner och funktionsblock

Syns du, finns du? Examensarbete 15 hp kandidatnivå Medie- och kommunikationsvetenskap

Kursplan. MT1051 3D CAD Grundläggande. 7,5 högskolepoäng, Grundnivå 1. 3D-CAD Basic Course

Translation Changes in Swedish EBSCOhost Interface

Grafisk teknik IMCDP IMCDP IMCDP. IMCDP(filter) Sasan Gooran (HT 2006) Assumptions:

Custom-made software solutions for increased transport quality and creation of cargo specific lashing protocols.

Swedish adaptation of ISO TC 211 Quality principles. Erik Stenborg

Övningar i SQL. SQLAccess.doc Ove Lundgren

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

Det finns en handledning till kortet på hemsidan. AVR STK500.

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

Styrteknik: Binära tal, talsystem och koder D3:1

RUP är en omfattande process, ett processramverk. RUP bör införas stegvis. RUP måste anpassas. till organisationen till projektet

UTLYSNING AV UTBYTESPLATSER VT12 inom universitetsövergripande avtal

Databaser - Design och programmering

Utfärdad av Compiled by Tjst Dept. Telefon Telephone Datum Date Utg nr Edition No. Dokumentnummer Document No.

State Examinations Commission

Databaser Design och programmering. Fysisk design av databasen att ta hänsyn till implementationsaspekter: minnesteknik filstrukturer indexering

Adding active and blended learning to an introductory mechanics course

Quicksort. Koffman & Wolfgang kapitel 8, avsnitt 9

Measuring child participation in immunization registries: two national surveys, 2001

Från Excel laddningar till web arbetsflöden

Databaser Design och programmering Minnesteknik Minnesteknik, forts Utvecklingen Hårddisk Hårddisk, forts

Kursplan. IK1004 Java - Grafiska användargränssnitt med Swing. 7,5 högskolepoäng, Grundnivå 1. Java - GUI Programming with Swing - Undergraduate Level

Enterprise App Store. Sammi Khayer. Igor Stevstedt. Konsultchef mobila lösningar. Teknisk Lead mobila lösningar

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

Transkript:

Uppsala universitet Institutionen för informationsteknologi Kjell Orsborn Tentamen 2003-08-22 DATABASTEKNIK - 1DL116 Datum...Fredagen den 22 Augusti, 2003 Tid...8:00-13:00 Jourhavande lärare...kjell Orsborn, tel. 471 11 54 eller 070 425 06 91 Hjälpmedel...miniräknare Anvisningar: Läs igenom hela skrivningen och notera eventuella oklarheter innan du börjar lösa uppgifterna. Förutom anvisningarna på skrivningsomslaget så gäller följande: Skriv tydligt och klart. Lösningar som inte går att läsa kan naturligtvis inte ge några poäng och oklara formuleringar kan dessutom misstolkas. Antaganden utöver de som står i uppgiften måste anges. Gjorda antaganden får förstås inte förändra den givna uppgiften. Skriv endast på en sida av papperet och använd ett nytt papper för varje uppgift för att underlätta rättning och minska risken för missförstånd. För godkänt krävs det cirka 50% av maxpoäng. 1

1. Datamodeller - tre-schema-arkitekturen: 4p I databassammanhang är tre-schema-arkitekturen ett välkänt sätt att beskriva en databas i flera nivåer och datamodeller. Förklara innebörden av var och en av dessa tre nivåer samt förklara vilka fördelaktiga egenskaper man kan uppnå med denna indelning. The three-schema architecture introduces a multi-level architecture where each level represents one abstraction level (in 1978 the standard architecture (ANSI/SPARC architecture ) for databases was introduced). It consists of 3 levels where each level introduces one abstraction layer and has a schema that describes how representations should be mapped to the next lower abstraction level: 1) The internal level or internal schema - describes storage structures and access paths for the physical database. Abstraction level: files, index files etc. Is usually defined through the data definition language (DDL) of the DBMS. 2) Conceptual level or conceptual schema - an abstract description of the physical database. Constitute one, for all users, common basic model of the logical content of the database. This abstraction level corresponds to the real world : object, characteristics, relationships between objects etc. The schema is created in the DDL according to a specific data model. 3) External level, external schemas, or views - a typical DB has several users with varying needs, demands, access privileges etc. External schemas describes different views of the conceptual database with respect to what different user groups would like to/are allowed to se. Some DBMS s have a specific language for view definitions (else the DDL is used). Physical data independence: the possibility to change the internal schema without influencing the conceptual schema. E.g. the effects of a physical reorganization of the database, such as adding an access path, is eliminated. Logical data independence: the possibility to change the conceptual schema without influencing the external schemas (views). E.g. add another field to a conceptual schema. 2. Fysisk databasdesign - indexering: 4p (a) förklara begreppen primärindex och sekundärindex deras uppbyggnad, användning och egenskaper. Primärindex består av en ordnad fil av dataposter med 2 fält. Första fältet är av samma typ som ordningsfältet (indexeringsfältet) för datafilen och det andra fältet är en pekare till ett datablock (blockpekare). Primärindex är ett glest index då det har en indexpost för varje block i data-filen. Primärindex kräver mycket mindre plats än motsvarande datafil. Sekundärindex är en ordnad fil av dataposter med 2 fält där första 2

fältet är av samma typ som som indexeringsfältet, dvs vilket fält som helst i datafilen. Andra fältet är en blockpekare. Indexeringsfältet kan vara ett icke-nyckelfält eller ett sekundärnyckelfält och datafilen ej sorterad efter indexeringsfältet. Sekundärindex kan vara glesa eller täta. Index ger en avsevärd effetivisering vid sökning av dataposter. Vid updatering av datafilen måste också tillhörande index uppdateras vilket medför en viss ökad kostnad för dessa operationer. Sekventiell skanning med hjälp av primärindex är effektivt men med sekundärindex är det dyrbart då varje post adressering kan betyda att ett nytt datablock måste hämtas från disk. Seckundärindex tar normalt mer plats än ett primärindex och längre söktid än ett primärindex. Förbättringen av söktiden för en godtycklig datapost är dock högre för ett sekundärindex än för ett primärindex om man jämför med att inte ha tillgång till något index. (b) beräkna hur många diskaccesser som behöver genomföras för att hitta ett specifikt sökvärde i ett B + -träd som omfattar 500000 sökvärden och nodstorleken i trädet är 100 (en nod anses fylla ett diskblock). 4 disk accesses corresponding to an access of a node at each level of the tree where the maximum depth of the tree is calculated from log n/2 N, where N is the number of search values and n is the size of the tree nodes. 3. Transaktionshantering: 4p (a) Vad är en seriell transaktionsplan och varför är en sådan plan betraktad som korrekt? En seriell transaktionsplan består av en exekveringsplan för en mängd transaktioner där för alla transaktioner skall gälla att alla deloperationer för en transaktionen skall exekveras efter varann i en följd utan att någon operation från en annan transaktion exekveras emellan. Det betyder att endast en transaktion är aktiv vid varje tillfälle. (b) Vad är en serialiserbar (eng. serializable) transaktionsplan? Förklara gärna med exempel. En transaktionsplan som består av ett antal transaktioner är serialiserbar om den kan transformeras till en motsarande seriell transaktionsplan för samma uppsättning transaktioner. (Ref kap 19.5 i vita Elmasri/Navathe - 3:e ed) 4. Återhämtning (eng. recovery): 4p Beskriv kortfattat proceduren för återhämtning enligt modellen omedelbar uppdatering (eng. immediate update) i en fleranvändarversion och där cascading rollback kan krävas. 3

Recovery according to the immediate update model: 1. Start from the last record in the log file and traverse backwards until a check point is reached. Create two lists: C transactions that have reached their commit points NC transactions that have not reached their commit points. 2. Create a list R with transactions that has read an item updated by a transaction in NC. (OBS that this step must be applied recursively). 3. Start from the last record in the log file and apply the UNDO procedure to all (Write,T,...) where T NC R. 4. Start from the check point and REDO all transactions (Write,T,...) such that (T C) (T / R). 5. Restart all failured transactions. 5. Säkerhet och integritet: 4p (a) Hur specificeras aktorisering (authorization) i moderna relationsdatabaser? (1p) By GRANT/REVOKE SQL commands that associates access rights with tables and views. (b) Varför är vyer användbara för aktorisering? (1p) Svar : Views make it possible to specify access rights covering subsets of tables or combinations of tables. E.g. dynamic access rights can be specifies where the accessible data depends on row values in tables. (c) När kan en användare transferera aktoriseringsrättigheter (authorization rights) till en annan användare? (1p) A user can transfer access rights if those where granted to him using the annotation WITH GRANT OPTION. (d) Vad är en accessmatris (access matrix) och hur används den för databassäkerhet? (1p) The access matrix is a 2D system object S x O - R stating what access rights R a subject S has for objkect O. Subjects are e.g. users, accounts, roles. Objects are e.g. tables, views. Rights are e.g. READ, WRITE, UPDATE. 6. Objekt-orienterade databaser: 4p (a) Vilka är de viktigaste skillnaderna mellan ett objekt-orienterat (objectoriented) och en objektrelationellt (object-relational) databassystem? (3p) An object-oriented DBMS extends an existing programming with the capability to persistently save objects on disk. The objectoriented DBMS acts as an object store. An object-relational DBMS extends a relational DBMS with capabilities to model and query objects, rather than just 3rd normal form tables. Object-oriented DBMS have more limited query capabilities than object-relational DBMS and is less suitable for high transaction frequencies or many users. Object-oriented DBMSs are on the other hand very efficient if data is to be accessed with few concurrent users procedurally 4

through a conventional programming language. Object-relational DBMS often contain hooks to extend the query optimizer. (b) Vad är swizzling och till vad används det? (1p) Swizzling is a technique used by object-oriented DBMSs to access transparently persistent objects as if they were main-memory references. 7. Frågeoptimering: 4p (a) Vad kallas de tre viktigaste join algoritmerna? (1p) Nested-loop join, Sort-merge join, and Hash join. (b) Beskriv hur de fungerar m.h.a. pseudokod. (3p) Nested loop join: Stream T, U, R; Tuple t, u; open(r, o ); open(t, i ); while (not(eof(t))) t = next(t); open(u, i ); while (not(eof(u)) u = next(u); if(t.k == u.k) emit(t + u, R); close(u); close(t); close(r); Sort-merge join: Stream T, U, R; Tuple t, u; open(r, o ); // öppna resultatström R open(t, i ); // öppna 1:a inströmmen open(u, i ); // öppna 2:a inströmmen t = next(t); // läs 1:a raden till t u = next(u); // detsamma för u while (not(eof(t)) and not(eof(u))) // så länge båda inströmmarna // har mer data if(t.k > u.k) u = next(u); // om nyckelfältet mindre i u så // flytta fram U else if(t.k < u.k) t = next(t); // detsamma för T else emit(t + u, R); // skicka t och u konkatenerade som // nästa resultatrad 5

close(t); close(u); close(r); // stäng alla strömmar Hash join: Stream T, U, R; Tuple t, u; HashTable h; open(r, o ); h = createhashtable(); open(t, i ); while (not(eof(t))) t = next(t); puthash(h,t.k,t); open(u, i ); while (not(eof(u)) u = next(u); tm = gethash(ht, u.k); if(tm!= NULL) emit(tm + u, R); close(u); close(t); close(r); 8. Relationskalkyl: 4p Vi har två relationer: EMPLOYEE(SSN, NAME, SALARY, DNO, ADDRESS, PHONE) DEPARTMENT(DNO, DNAME, MGR, SECR, LOCATION) och ställer SQL frågan: SELECT S.NAME FROM EMPLOYEE E, DEPARTMENT D, EMPLOYEE S WHERE E.NAME = Kalle Karlsson AND D.DNO = E.DNO AND D.SECR = S.SSN (a) Översätt frågan till tuple relational calculus. (2p) s.name employee(s) and exist s, d (e.name = "Kalle Andersson" and d.dno = e.dno and d.secr = s.ssn) (b) Översätt frågan till domain relational calculus. (2p) 6

name exists ssn, salary, dno, address, phone, dname, mgr, location (employee(ssn, name, salary, dno, address, phone) and department(dno, dname, mgr, ssn, location) alt. if means don t care what value is : name exists ssn, dno (employee(ssn, name, _, dno, _, _) and department(dno, _, _, ssn, _) Lycka till! / Kjell och Tore 7