Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi



Samankaltaiset tiedostot
Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Majoittuminen? X.= 2p muut vaihtoehdot 0 p. e) Montako riviä on taulussa Hotelli. tunnus=hotelli

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

SELECT-lauseen perusmuoto

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

SQL - STRUCTURED QUERY LANGUAGE

Tietokantojen suunnittelu, relaatiokantojen perusteita

Relaatioalgebra. Kyselyt:

Relaatiomalli ja -tietokanta

HELIA 1 (17) Outi Virkki Tiedonhallinta

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 Tietokannan suunnittelusta Harri Laine 1

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

Kyselyn yleisrakenne:

Tietokannat II -kurssin harjoitustyö

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Nimi: Henkilötunnus: {id} {+id}

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, k 2006 relaatioalgebra. Harri Laine 1

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra Harri Laine 1. Relaatioalgebra

Opintopiiritehtävä 3: Verkkohuutokauppa

HELIA 1 (17) Outi Virkki Tiedonhallinta

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2004 Tietokannan suunnittelusta. Harri Laine 1

Relaation tyhjyyden testaaminen

1. Tarkastellaan seuraavaa kaaviota

Liitokset - haut useaan tauluun

HELIA 1 (12) Outi Virkki Tiedonhallinta

joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus

CSE-A1200 Tietokannat

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1.

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

HELIA TIKO-05 1 (15) ICT03D Tieto ja tiedon varastointi Räty, Virkki

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

2. Käsiteanalyysi ja relaatiomalli

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, )

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Mitä malleja olisi tarjolla? Abstraktiotasot tiedon käsittelyssä

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

b) Määritä myös seuraavat joukot ja anna kussakin tapauksessa lyhyt sanallinen perustelu.

Helsingin yliopisto/ tktl D Tietokantojen perusteet, s 2000 Relaatioalgebra. Harri Laine 1. Relaatioalgebra.

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

Yhdiste, leikkaus, erotus ym.

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki Relaatiomalli

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

Ohjelmoinnin perusteet Y Python

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

CSE-A1200 Tietokannat

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet

Esimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! ! Henri Nurmi! !

Lisätään avainarvo 6, joka mahtuu lehtitasolle:

Lisätään avainarvo 1, joka mahtuu lehtitasolle:

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 29

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

Vain valitut kentät: SELECT Päivämäärä, Laskutusnimi, [ale mk], Loppusumma FROM Laskuotsikot

CSE-A1200 Tietokannat

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto.

VINKKI: Katso Kentät Muistioon -painikkeella, mikä on taulukon nimen oikea kirjoitusasu.

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos

LAINAUSJÄRJESTELMÄ. Kyllä. Vihermetsän lukion kirjastossa on samankaltainen, mutta monimutkaisempi lainausjärjestelmä:

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä

Tietokannan suunnittelu

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

Virta_Latausraportti - Tarkistukset

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki

Tietokanta projektin alussa: create table kurssin_tila ( NOT NULL VARCHAR2(60) create table kurssin_tyyppi ( create table opintojakson_tyyppi (

Ohjelmoinnin perusteet Y Python

Tietokannat II -kurssin harjoitustyö

SQL:N PERUSTEET MARKKU SUNI

OUTER JOIN se vanha kunnon kaveri

17 BUDJETOINTI. Asiakaskohtainen Budjetti Ylläpito-ohjelma. Dafo Versio 10 BUDJETOINTI. Käyttöohje. BudgCust Yleistä

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

TIETOJENKÄSITTELY/TIETOKANTA Tehtävä C

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

SQL-kielen perusteet. Tietokantojen perusteet

3. Käsiteanalyysi ja käsitekaavio

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Transkriptio:

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, kurssikoe 29.2.2012 (vastauksia) Liitteenä on tiivistelmä SQL-syntaksista Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi 1. Seuraavissa kaaviossa X Y tarkoittaa, että X on tauluun Y viittaava viiteavain. (X,Z) Y ilmaisee, että X ja Z yhdessä muodostavat viiteavaimeen. a) Selitä lyhyesti (parilla virkkeellä) mitä tarkoittaa käsite viiteavain ( foreign key) relaatiomallissa. (8p) Viiteavain X taulusta A tauluun B on sarake tai sarakeyhdistelmää, jonka arvot esiintyvät taulussa B avainsarakkeen (tai yhdistelmän) K arvoina ja näin muodostavat kytkennän taulujen A ja B rivien välille. Arvostelusta: Jos kytkeminen tuotiin esiin jotakuinkin ymmärrettävällä tavalla, niin vähintään 1 piste. Jos väitettiin, että viiteavain on avain, niin -1 p. b) Tarkastellaan relaatioita A(B,C,D,E) ja F(G,H,E,C). Tässä ei ole merkitty viiteavaimia. Voiko sarake G olla tauluun A viittaava viiteavain? Perustele vastauksesi lyhyesti. Ei voi sillä viiteavaimen täytyy olla rakenteellisesti yhteensopiva kohdetaulun avaimen kanssa. Tässä ei ole: 1 sarake vs. 3 saraketta. Virheelinen perustelu vei 1 pisteen, väärä päätelmä molemmat. c) Tarkastellaan relaatioita J(K P,L,M,N) ja P(Q,R,S). J:n monikkomäärä olkoon 2000 ja P:n 100. Relaatiot kytketään yhteen liitoksella, jossa liitosehtona on J.K=P.Q. Montako monikkoa sisältyy liitostulokseen? 2000, Viiteavain sisältyy taulun avaimeen eikä siis voi olla tyhjä. 100-2000: 1 piste 100,200000: 0 pistettä joku muu 0 pistettä d) Tarkastellaan kohdan c relaatiota P. Kumpi projektio on rivimäärältään suurempi Q (P) vai Q,R (P)? Anna lyhyt perustelu. Tulosrelaatioissa on sama määrä rivejä koska avain sisältyy kumpaankin projektioon. jälkimmäinen vähintään yhtä suuri: 1p ensimmäinen suurempi: 0p Perustelu ontui tai väärin: -1p

2. Tarkastellaan lomamökkien vuokraukseen liittyvää tietokantaa: asiakas(asiakasnumero, nimi, osoite, paikkakunta, puhelinnumero, sposti) mökki(mtunnus, aluetunnus alue, luokitus, osoite, paikkakunta, huoneiden_lkm, ajo_ohjeet) varustelu(mtunnus mökki, vtunnus varuste, kuvailu, kuva) viikkohinta(mtunnus mökki, vuosi, viikko, hinta) alue(aluetunnus, alueen_nimi, kuvailu) varuste(vtunnus, nimi) -- esim. jääkaappi, pesukone, sauna, jne varaus(vnro, asiakasnumero asiakas, tehty_pvm) varaussisältö(vnro varaus, (mtunnus, vuosi, viikko) viikkohinta) Taulu viikkohinta sisältää rivin jokaiselle viikolle, jolle mökki on tai on ollut vuokrattavissa. a) Listaa Ivalossa sijaitsevat luokan 5 mökit (tunnus, osoite ja huoneiden lukumäärä), joita ei ole varattu viikolle 12 vuonna 2012. select mtunnus,huoneiden_lkm, osoite from mökki where paikkakunta= Ivalo and luokitus=5 and mtunnus not in (select mtunnus from varaussisältö where vuosi=2012 and viikko=12) virheitä: varattuna olon tarkistuksen puuttuminen -3p, varattuna olon tarkistuksen virheellisyys: -1 - -3, muita ongelmia -1..-2p Ivalo on katsottu alueeksi: OK, mutta jos aluetietoa ei ole kytketty mökkiin -2p. b) Listaa Heinolassa sijaitsevat mökit (tunnus, osoite), joiden varustukseen sisältyy sekä sauna että kylpytynnyri. select mtunnus,osoite from mökki where paikkakunta= Heinola and mtunnus in (select mtunnus from varustelu, varuste where varustelu.vtunnus=varuste.vtunnus and nimi= sauna ) and mtunnus in (select mtunnus from varustelu, varuste where varustelu.vtunnus=varuste.vtunnus and nimi= kylpytynnyri ) Ehto nimi= kylpytynnyri and nimi= sauna on aina epätosi koska rivillä on vain yksi arvo (-2p) Ehto nimi= kylpytynnyriä or nimi= sauna antaa väärän tuloksen mutta ei tyhjää -1p Kytkennät puuttuvat -2p, Ristiriitaisia kytkentöjä, vääriä tauluja -1.. -3p Muita ongelmia -1.. -4p sauna jä kylpytynnyri on hyväksytty myös varusteiden tunnuksiksi. Heinola on tulkittu alueeksi OK, mutta kysely tulee hieman monimutkaisemmaksi.

c) Laadi laskelma, josta käy ilmi kustakin Ivalossa sijaitsevasta mökistä vuonna 2011 maksettu kokonaishinta. Anna mökistä tunnus ja osoite. select mökki.mtunnus, mökki.osoite, sum(hinta) from mökki,viikkohinta,varaussisältö where paikkakunta= Ivalo and mökki.mtunnus=viikohinta.mtunnus and viikkohinta.mtunnus=varaussisältö.mtunnus and viikkohinta.viikko=varaussisältö.viikko and viikohinta.vuosi=varaussisältö.vuosi and viikohinta.vuosi=2011 group by mökki.mtunnus, mökki.osoite order by mökki.mtunnus, mökki.osoite Arvostelusta: Laskettu tuottoa myös viikoilta, jolloin mökki ei ole ollut varattuna: -2p Ryhmittely puuttuu: -2 ryhmittelyssä ongelmia: -1..-2 Laskettu lukumäärä eikä summaa: -1 Liitosehdoissa ongelmia: 0..-2 syntaktisesti virheellinen kysely: -1..-3 tauluihin viitataan, mutta eivät ole mukana: -1..-2p Tarpeettomien taulujen esim. varaus käytöstä ei ole sakotettu, paitsi jos kytkemättä d) Laadi luettelo vuoden 2011 huippuasiakkaista. Huippuasiakkaaksi lasketaan asiakkaat, jotka ovat vuoden aikana tehneet yli 3 varausta. select nimi, asiakas.asiakasnumero, count(*) varauksia from asiakas, varaus where asiakas.asiakasnumero=varaus.asiakasnumero and tehty_pvm between date 2011-01-01 and date 2011-12-31 group by nimi, asiakas.asiakasnumero having count(*)>3 order by nimi, asiakas.asiakasnumero Ryhmittely puuttuu: -2 ryhmittelyssä ongelmia: -1..-2 laskettu summa eikä lukumäärää: -1 Käytetty vääriä tauluja: -3 Kytkentä puuttuu tai on virheellinen: -2p päiväysten käsittelyssä ongelmia: 0..-1p (16p) Tehtävät 3-4 ovat toisella puolella.

3. Seuraavassa käsitekaaviossa on kuvattu graduhallintajärjestelmän tietosisältöä. Määrittele kaavion perusteella tietosisällön esittämiseen tarvittavien relaatiotietokannan taulujen rakenne. Esitä taulurakenne tehtävissä 1 ja 2 käytetyllä tekniikalla. (6p) opiskelija(opiskelijanumero,nimi,aloitusvuosi) gradu(tunnus,otsake,aloituspvm,nykytila,valmistumispvm,arvosana,opiskelijanro O piskelija) opettaja(opetunnus,nimi,sposti) gradunvaihe(tunnus gradu,vaihenro,alkamispvm,päättymispvm,päättymissyy) ohjaus(gradutunnus gradu,opetunnus opettaja,rooli,alkamispvm,päättymispvm) tarkastus(gradutunnus gradu, tarkastusnro, jättöpvm, valmistumispvm, tarkastuksentyyppi, lausunto) tarkastaja((gradutunnus,tarkastusnro) tarkastus,opetunnus opettaja) Virheitä: Yhteyttä ei ole toteutettu -1p, kuitenkin max -4p Yhteys toteuttettu väärin -1p, kuitenkin max -4p Viiteavaimet merkitty väärin, mutta idea selviää jotenkuten -2..-3p Avaimet on merkitty väärin: -1..-2p Ohjaus kohteen toteutus puuttuu kokonaan -1p Avaimen ja viiteavaimen yhteensopivuusongelmia -1p Hyväksytty myös ratkaisu, jossa tarkastusnro on yksinään Tarkastus-taulun avain.

4. Kalastuskerholla on noin 10 kilpailua vuodessa. Kerhon kilpailutoiminnan tulosten kirjausta varten on suunniteltu seuraava kalastajan tuloksia kuvaava taulu: saalis (kilpailun_tunnus, kilpailupaikka, kilpailupäivä, kalastajatunnus, kalastajan_nimi, kalalaji, kalastajan_syntymävuosi, kalastajan_saaliin_kokonaispaino, kalojen_kappalemäärä_kalastajan_saaliissa, kalastajan_sijoitus_kisassa) a) Mitä tarkoittaisi käytännössä riippuvuus kilpailun_tunnus kalastajan_syntymävuosi? kilpailut ovat ikäluokkakohtaisia, eli jokaisella osallistujalla on sama syntymävuosi. virheessä voi olla aste-eroja selityksessä :- 1 tai 2p b) Esitä funktionaalisena riippuvuutena sääntö samalla paikalla voidaan järjestää vain yksi kilpailu samana päivänä. kilpailupaikka, kilpailupäivä kilpailuntunnus (oikeat sarakkeet mutta riippuvuus väärin 1p) c) Olkoon taulussa voimassa riippuvuudet kilpailun_tunnus kilpailupaikka, kilpailun_tunnus kilpailupäivä, kalastajatunnus kalastajan nimi, kalastajatunnus kalastajan_syntymävuosi, kilpailun_tunnus, kalastajatunnus kalastajan_saaliin_kokonaispaino, kilpailun_tunnus, kalastajatunnus kalojen_kappalemäärä_kalastajan_saaliissa, kilpailun_tunnus, kalastajatunnus kalastajan_sijoitus_kisassa, Mikä sarake tai sarakeyhdistelmä on taulun avain. Onko taulu Boyce-Codd normaalimuodossa? Perustele vastauksesi lyhyesti. (6p) Sarakkeet kilpailuntunnus, kalastajatunnus ja kalalaji eivät esiinny missään riippuvuuksissa oikealla puolella, joten ne kuuluvat avaimeen. Kaikki riippuvuudet rikkovat BCNF:n vaatimusta siitä, että riippuvuudet olisivat avainperustaisia. Avain väärin -1p. Voitaisiin kuitenkin ajatella, että kilpailuntunnus ehkä sittenkin määräisi kalalajin, joten myös avain (kilpailutunnus, kalastajatunnus) hyväksytiin oikeaksi (jopa ilman perustelua). Päätelmä tai sen perustelu väärin. -1p. Jos avaimena on kilpailutunnus,kalastajatunnus niin 4 ensimmäistä rikkoo vaatimuksen. Siis ei ole BCNF tässäkään tapauksessa. Tehtävät 1 ja 2 ovat toisella puolella.