Tällä viikolla Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia
1.) Mainitse tietokonepelistä (kuvitteellisesta tai todellisesta) esimerkkitilanteita, joissa voitaisiin tarvita a) Operatiivista tietokantaa b) Tietovarastoa 2.) Etsi (netistä, kirjallisuudesta) tietokantatekniikkaan liittyvät selitykset lyhenteille. Vastaukset parilla lauseella riittää. a) OLAP: tosiaikainen tiedon jalostus (*), online analytical processing, OLAP b) OLTP: tosiaikainen transaktiokäsittely (*), on line transaction processing, OLTP c) ETL: extract, transform, load, tavallisesti tietovarastojen tiedon latauksissa käytetty termi, kuvaa tiedon latauksen prosessien vaiheita 3.) Asenna kotikoneellesi MySQL Workbench
1. Luo etäyhteys Hoover-palvelimen MySQL-tietokantaan ohjeen mukaan: http://realprogrammers.com/how_to/set_up_an_ssh_tunnel_with_putty.html Seuraavat tehtävät käsittelevät sakila-tietokantaa. http://dev.mysql.com/doc/sakila/en/sakila-structure.html 2. Kuinka monta taulua kannassa on? 16 3. Kuinka monta saraketta on seuraavissa tauluissa? a) actor 4 b) film 13 c) film_actor 3 4. Mitkä ovat seuraavien taulujen pääavaimet? a) city _id b) staff _id c) language _id 5. Kuinka monta riviä on seuraavissa tauluissa? (COUNT) a) language 6 b) film 1000 c) actor 200 6. Hae kaikki actor-taulun rivit joiden a) sukunimi alkaa R-kirjaimella select * from actor where last_name like 'R%' b) etunimi päättyy S-kirjaimeen select * from actor where first_name like '%S' 7. Kuinka monta elokuvaa on joiden a) vuokraushinta on 2.99 323 select count(*) from film where rental_rate=2.99 b) kesto on yli 160 minuuttia 176 select count(*) from film where length>160
- Suunnitellaan kuvitteelliselle pelifirmalle tietovarasto - Jaetaan tietovaraston suunnittelu neljään osaan: firman perustiedot, työntekijätiedot, yhteistyöverkosto ja pelit - Tehdään suunnittelu ryhmätyönä, sovelletaan ryhmätyömallia palapeli : - Ryhmät tekevät aluksi itsenäistä työtä - Välillä vieraillaan muissa ryhmissä - Kootaan tulokset yhteen
- Taulun varmistus, tietojen lataus, taulun poisto - DISTINCT-kyselyt, kuinka monta eri arvoa on - AND- ja OR-operaattorit, kyselyehtojen yhdistelyt - Funktioita COUNT, SUM, AVG, MIN, MAX - Aloitetaan henkilökohtaisen SQL-oppaan teko
- Taulun varmistus, tietojen lataus, taulun poisto - DataExport- ja Import-toiminnot CREATE TABLE `actor_backup` ( `actor_id` smallint(5), `first_name` varchar(45) NOT NULL, `last_name` varchar(45) NOT NULL, `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); INSERT INTO `actor_backup` VALUES (1,'PENELOPE','GUINESS','2006-02-15 02:34:33'),(2,'NICK','WAHLBERG','2006-02-15 02:34:33'); DROP TABLE actor_backup
Tutki ja harjoittele Sakila-tietokantaan DISTINCT-kyselyitä ja AND- sekä ORoperaattorin käyttöä Tutki ja harjoittele funktioiden käyttöä kyselyissä, voit aloittaa tästä: SELECT rating, AVG(rental_rate) FROM film GROUP BY rating
Seuraavat tehtävät koskevat tietokantaa classicmodels. Eli ennen kyselyiden tekoa aktivoi tuplaklikkaamalla MySQL:sta ensin tietokanta classicmodels. Vastaukset tulee olla SQL-kyselyitä. Sulkeissa on joitain vinkkejä kyselyyn. Millä kyselyllä: 1. Saat selville yrityksen "president"-tittelin omaavan työntekijän? 2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) 3. Haet työntekijöiden tiedot tittelin mukaan laskevasti järjestettyinä. (ORDER BY) 4. Haet kaikki toimistot jotka eivät sijaitse USAssa tai Ranskassa. 5. Haet kaikki tuotteet, joiden ostohinta on 90 ja 100 välillä. (BETWEEN) 6. Haet kaikkien asiakkaiden tiedot joille ei ole määritelty osavaltio-tietoa. (NULL) 7. Selvität mikä on kaikki tuotteiden yhteenlaskettu ostohinta (kenttä buyprice)? 8. Selvität mikä on kaikkien tuotteiden ostohintojen keskiarvo? 9. Haet suoritettujen maksujen summat asiakkaittain (GROUP BY, SUM) 10. Haet tilausten tuotteiden yhteismäärät per tuote (GROUP BY, SUM) 11. Lopuksi vielä vapaaehtoinen tehtävä koskien edellisen kerran ryhmätyötä. Tehtävänä oli tietomallin luominen pelifirman tietovaraston pohjaksi. Kerro lyhyesti mietteitäsi ryhmätyöstä: sopiko ryhmätyö juuri tähän tehtävään?, tuntuiko työskentely tehokkaalta?, opitko uutta toisaalta tietomallin suunnittelusta ja toisaalta ryhmätyöskentelystä? jne...