Tietokantojen perusteet 20.5.14 Jokainen osakysymys 1-6 arvostellaan erikseen ja kurssisuoritus vaatii jokaisen osan hyväksyttyä osaamista. Osa on voitu suorittaa kurssin aikana tai se voidaan suorittaa tentissä. Kaikki osat pitää olla suoritettu syyskuuhun 2014 loppuun mennessä, muuten osasuoritukset kuoleutuvat. Jos siis saat tästä tentistä hylätyn, olet silti voinut olla hyväksytysti suorittanut esimerkiksi osat 1 ja 3. Tällöin sinun riittää yrittää seuraavassa tentissä vain osia 2,4,5 ja 6. Englanninkielisen ja suomenkielisen tentin kysymykset ovat erit. Vastaa vain toiseen tenttiin. Merkitse opiskelijanumerosi tenttipaperiin - ei henkilötunnusta. Basics of databases 20.5.2014 The course has six parts. Parts will be evaluated separately and you must pass every part. You must pass every part before October. After evaluation of this exam you will be informed, if you pass any single part (assuming that you have enrolled to the exam in Oodi). English and Finnish exams differ. English questions in the end. Osa 1: Määrittele (Max 1p/kohta) : 1. Relaatio 2 Relaation (perus)avaimen eheysvaatimus. (Ns. entiteetin eheys, entity constraint) 3. Relaation viiteavain 4. Avainehdokas (ehdokasavain, kandidaattiavain) 5. Koosteattribuutti 6. Luettele henkilörekisterilain mukaiset arkaluonteisen tiedon tyypit: (Max 5p)
OSA 2. Englanninkielisten kysymysten lopussa on EER-kaavio. Revi se pois, kirjoita siihen nimesi ja palauta se vastauskonseptisi välissä. Tee siihen seuraavat korjaukset ja lisäykset. a) Sama henkilö ei voi olla sekä asunnonomistaja että asunnon vuokraaja. b) Samalla asunnolla voi olla useita vuokraajia. c) Tiedämme päivämäärän, milloin vuokralaisesta on viimeksi tarkistettu mahdolliset luottohäiriömerkinnät. d) Tiedämme, milloin kukin asunnon omistaja on kunkin asunnon ostanut, ja milloin omistaja on asunnosta luopunut. e) Me muistamme myös aikaisemmat omistajat. f) Vuokrattavana on sekä omakotitaloja (joista kiinnostaa: huoneiden lukumäärä, saunan olemassaolo, onko tontti oma ja osoite) sekä osakkeita (joista kiinnostaa huoneiden lukumäärä, saunan olemassaolo, osoite ja kiinteistöyhtiö). Yleistä tarpeellisilta osin. g) Kiinteistöyhtiöistä kiinnostaa nimi (tunniste), osoite ja puhelinnumero. h) Omakotitaloja vuokrataan vain pariskunnille. (Meillä pitää olla tieto avioliitoista) OSA 3. Alkuperäinen taulu on Tenttitulos TENTTITULOS(kurssin_nimi, Kurssin_koodi, Tentti_PVM, Tenttaattorin_nimi, Järjestävä_laitos, OP, Opiskelijan_nimi, Arvosana, Opiskelijan_hetu, Opiskelija#, Opiskelijan_laitos, Opiskelijan_osoite) On normalisoitu tauluiksi: KURSSI(nimi, koodi, laitos, OP) OPISKELIJA(nimi, hetu, opiskelija#, laitos, osoite) SUORITUS(kurssikoodi, opiskelija#, tentti_pvm, tenttaattorin_nimi, arvosana)
Minkä kokoiset taulut ovat? Oliko normalisointi kannattavaa tilan käytön kannalta? kurssin_nimi 30 merkkiä Kurssin_koodi 10 merkkiä Tentti_PVM 8 merkkiä Tenttaattorin_nimi 30 merkkiä Järjestävä_laitos 20 merkkiä OV 2 merkkiä Opiskelijan_nimi 30 merkkiä Arvosana 1 merkki Opiskelijan_hetu 11 merkkiä Opiskelija# 5 meerkkiä Opiskelijan_laitos 20 merkkiä Opiskelijan_osoite 40 merkkiä Yhteensä: 207 merkkiä Yliopistossa on 10 000 opiskelijaa ja se järjestää 1000 kurssia. Keskimääräinen opiskelija on tehnyt 30 tenttisuoritusta. OSA 4. 1. Mitä tarkoittaa transaktionin vahvistaminen (commit) (Max 1p) 2. Force buffer ja no force buffer -periaate. (Max 3p) 3. Nälkiintyminen (starvation) (max 1p) 4. Vyöryyntymätön ajoitusjärjestys (cascadeless schedule, Max 1p) 5. Transaktion ACID-ominaisuudet (Max 1p/kohta) OSA 6 Koskien EER-kaaviota Picture 1 (modifioitu Silberschatz et al). a) Kirjoita Olio-SQL-lauseet, joilla voit toteuttaa kaavion relaatiotauluina. (Max 8p) b) Tee laatimiin tauluihn SQL-kysely, joka palauttaa kaikkien 12.12.1976 syntyneiden tiedot. (Max 2p)
OSA5. CUSTOMER CID NAME STREETADDRESS ZIP P_OFFICE DESCRIPTION EMPLOYEE EID NAME STREETADDRESS ZIP P_OFFICE PROVISION ORDER ORDERNUMBER CUSTOMERID EMPLOYEEID DATE CUSTOMERID viittaa -> CUSTOMER(CID) EMPLOYEEID viittaa-> EMPLOYEE(EID) PRODUCT NAME PRICE PID DESC ORDER_ROW ORDERNUMBER ROWNUMBER PRODUCT QUANTITY ORDERNUMBER viittaa -> ORDER(ORDERNUMBER) PRODUCT viittaa -> PRODUCT(PID) Laadi seuraavat tietokantakyselyt SQL-kielellä yo. kantaan. a). Luettele niiden asiakkaiden nimi ja osoite, jotka eivät ole kuusamolaisia eivätkä porilaisia. b) Luettele niiden työntekijöiden nimet, jotka eivät ole koskaan myyneet mitään. c) Luettele niiden työntekijöiden numerot, jotka ovat myyneet joskus kumin (rubber). d) Luette niiden asiakkaiden nimet, jotka ovat tehneet ainakin kaksi eri tilausta. e) Luettele niiden asiakkaiden nimet, jotka eivät ole koskaan ostaneet kumia (rubber), mutta ovat ostaneet kynän (pen).
PICTURE 1
ENGLISH QUESTIONS PART 1: Question 1) The Data Protection Directive (officially Directive 95/46/EC on the protection of individuals with regard to the processing of personal data and on the free movement of such data) is a European Union directive which regulates the processing of personal data within the European Union. The seven principles governing the OECD s recommendations for protection of personal data were: 1) Notice 2) Purpose 3) Consent 4) Security 5) Disclosure 6) Access 7) Accountability Describe four of this recommendations, what they mean. Question 2) (Relational model) Define: 1) Primary key 2) Foreign key 3) Domain of attribute
PART 2. In the end there is an EER-picture. Take it off, write your name on it and return inside your answer paper. Make following modifications to that EER-picture: a) The same person must not be both a tenant and a landlord. b) Group of persons can rent an appartment. c) We know the date when we have last checked credit rating of a tenant. d) We know the date when the landlord has bought the appartment and when he has sold it. e) We remember previous landlords of the appartment f) We rent both houses and condominiums. (Houses) number of rooms, area and address. (Condominiums) number of rooms, address and property company. g) Property company we know name (unique), and contact person s name and phone h) Only married couples can rent houses. (We must know marriages) PART 3. Consider the relation R, which has attributes that hold schedules of courses and sections at a university; R = {CourseNo, SecNo, OfferingDept, CreditHours, CourseLevel, InstructorSSN, Semester, Year, Days_Hours, RoomNo, NoOfStudents}. Suppose that the following functional dependencies hold on R: {CourseNo} -> {OfferingDept, CreditHours, CourseLevel} {CourseNo, SecNo, Semester, Year} -> {Days_Hours, RoomNo, NoOfStudents, InstructorSSN} {RoomNo, Days_Hours, Semester, Year} -> {InstructorSSN, CourseNo, SecNo} Try to determine which sets of attributes form keys of R. How would you normalize this relation? ( Elmasri & Navathe)
PART 4. TRANSACTIONS 1. Determine serial schedules that are conflict equivalant with following serializable schedules. S1: w 11 (X); r 22 (X); r 11 (X); r 11 (Y); w 22 (X); w 11 (Y); S2: r 1 (X); r 2 (Y); r 1 (Z); w 3 (X); w 3 (Z); w 1 (Y); r 3 (Y); S3: r 1 (X); r 2 (Z); w 1 (X); w 1 (Z); w 3 (Z); r 3 (Z); r 3 (X) S4: r1(x); r2(z); r3(x); r1(z); r3(y); w1(x); w2(z); w3(y); w2(y); S5: w 21 (X); w 21 (Z); w 25 (Y); r 21 (Y); r 39 (X); w 39 (Z) 2. Define: a) force buffer management b) a dead lock of transactions c) transaction abort d) no steal policy e) Checkpoint for recovery PART 6 Check Picture 1. (Between Finnish and English questions) (modified from Silberschatz et al). a) Give Object-SQL-commands to create proper tables. (8p) b) To created tables, give an SQL-query to find data of all people born 12.12.1976 (2p)
PART 5 PART 1. CUSTOMER CID NAME STREETADDRESS ZIP P_OFFICE DESCRIPTION EMPLOYEE EID NAME STREETADDRESS ZIP P_OFFICE PROVISION ORDER ORDERNUMBER CUSTOMERID EMPLOYEEID DATE CUSTOMERID references -> CUSTOMER(CID) EMPLOYEEID references -> EMPLOYEE(EID) PRODUCT NAME PRICE PID DESC ORDER_ROW ORDERNUMBER ROWNUMBER PRODUCT QUANTITY ORDERNUMBER references -> ORDER(ORDERNUMBER) PRODUCT references -> PRODUCT(PID) Define following queries by SQL to database above. a). List names and adresses of the customers who are not from Kuusamo nor Pori. b) List the names of the employees who has never sold anything. c) List the numbers of the employees who has sold a rubber. d) List the names of the customers who has done at least two separate orders. e) List the names of the customers who has never bought a rubber but who has bought a pen.