Harjoitustyöohje ja raporttipohja

Koko: px
Aloita esitys sivulta:

Download "Harjoitustyöohje ja raporttipohja"

Transkriptio

1 CT60A4301 Tietokannat Harjoitustyöohje ja raporttipohja Lappeenrannan teknillinen yliopisto Innovation and Software (IS) in LUT School of Business and Management CT60A4301 Tietokannat Ryhmä: Olli Meikäläinen Minna Teikäläinen

2 Sisällys YLEISTÄ HARJOITUSTYÖSTÄ... 3 VAIHE 1: SUUNNITTELU... 6 VAIHE 2: RELAATIOMALLIKSI MUUNTAMINEN (KONVERTOINTI)... 7 VAIHE 3: KÄYTTÖLIITTYMÄN LUOMINEN PALAUTUSOHJE ESIMERKKIAIHEITA RAPORTTIPOHJA POIKKEUSTAPAUKSET: EI NYKYISEN MUOTOISEN TAI AIEMMAN OHJELMOINNIN PERUSTEET- KURSSIN SUORITUSTA EI LAINKAAN

3 YLEISTÄ HARJOITUSTYÖSTÄ Harjoitustyössä suunnitellaan ja toteutetaan relaatiotietokanta kuvitteelliselle loppukäyttäjälle / asiakkaalle. Tietokannalle toteutetaan ohjelmallinen käyttöliittymä osin valmiiksi tehdyn Python-koodin (tai muun ohjelmallisen toteutuksen) avulla. Työ tehdään kahden tai yhden hengen ryhmissä. Työn osaalueet ovat: (1) Suunnittelu (tehtävänannon kuvaus ja työn rajaukset; tietokannan käsitemalli ja eheyssääännöt), (2) relaatiomalliksi konvertointi eli muuntaminen, (3) ohjelmallinen toteutus, ja 4) yhteenveto (opitut asiat ja ongelmien ratkaisut). Nämä osa-alueet toteutuvat kaikissa käytännön tietokantaratkaisuissa ja siten myös kurssin harjoitustyössä. Harjoitustyön neljä työvaihetta kuvataan tässä dokumentissa. Suorita vaiheet tässä järjestyksessä, mikäli noudatat perus tehtävänantoa. Ryhmä voi suorittaa myös vapaamuotoisen harjoitustyön, jossa se tutustuu johonkin vaihtoehtoiseen tapaan toteuttaa tietokantaratkaisu web sovellus, cloud-ympäristöt, mobiilialustat, erityyppiset sulautetut tietokannat, jne. Ota yhteys kurssin luennoijaan, mikäli vaihtoehtoinen aihe ja toteutustapa kiinnostavat. Tämän ohjemateriaalin lisäksi on harjoitustyöpaketissa toimitettu kokoelma Python-koodimoduleita ja esimerkkiohjelman muita aputiedostoja. Näistä kerrotaan lisää työvaiheessa 3. Käyttöliittymän luominen. Aikataulu ja ohjaus Kurssin viikkoharjoitusten neljännen periodin osuus on varattu HT:n tekemiselle ja ohjaamiselle. Alustava, suositeltava aikataulu kurssiviikoittain on seuraava: Viikkoaikataulu & DL:t Tehtävät Viikot 1-6 Opiskelija suorittaa itsenäisesti ViopeSQL - verkkokurssin. Tämä suoritus koskee kaikkia Tietokannat- kurssille ilmoittautuneita. Ainoa poikkeus on se, jos valitset itsenäisesti suoritettavan Stanfordin yliopiston Databaseskurssin. Varaa aikaa verkkokurssin suorittamiseen 3. periodilla ja aloita sen suoritus heti ensimmäisellä luentoviikolla. SQL- verkkokurssin suoritus on välttämätön ja pakollinen harjoitustyön ymmärtämiseksi. Verkkokurssia ohjaa kurssin luennoija Erja Mustonen-Ollila. Verkkokurssin ilmoittautumisohjeet löytyvät Nopassa kohdasta Muu materiaali. Viikot 1-6 Viikkoharjoituksia Noppa -kurssisivujen mukaisesti. Harjoitukset alkavat heti ensimmäisellä luentoviikolla. Harjoituksia pitää kurssin luennoija. 3

4 Viikko 6 Viikot 7-10 Viikot 7-10 Viikot Harjoitustyön ohjaus aloitetaan harjoituksissa kurssin luennoijan johdolla. Harjoitusten pitäjä on myös kurssin luennoija. Ryhmä määrittää ja tekee oman käsitemallin, joka sitten muutetaan relaatiomalliksi. Tästä harjoitustyöstä poikkeuksen tekevät opiskelijat, jotka eivät ole suorittaneet ohjelmoinnin perusteita tai ovat suorittaneet sen jo vuosia sitten erilaisessa muodossa, mitä se on nykyään. Näissä poikkeustapauksissa opiskelija ottaa suoraan yhteyden kurssin luennoijaan ja saa häneltä oman harjoitustyön ja ohjeet sen suorittamiseen sekä palautusohjeet. HUOM! Jos kuitenkin suoritat koko Tietokannatkurssin etänä Stanfordin yliopiston Databaseskurssin avulla, niin kerro asiasta kurssin luennoijalle ennen sen aloittamista. SQLite3:n ja Python -ohjelmapohjan läpikäynti harjoituksissa. Ryhmä toteuttaa (ja korjaa) relaatiomallin SQLitella relaatiotietokannaksi (mukana kyselyt). Ryhmä sovittaa Python -ohjelmapohjan relaatiotietokantaansa ja suorittaa ohjelmallisen toteutuksen valmiiksi. Raportin viimeistely / päivitys , klo mennessä Harjoitustyön deadline eli palautuspäivä. Katso tämän raportin lopusta tarkat palautusohjeet. Kirjallinen raportti 4 Kaikissa tapauksissa harjoitustyö palautetaan kurssin luennoijalle! Ne poikkeustapaus -opiskelijat, jotka ohjelmoinnin perusteet kurssin- esitietonsa puutteen takia ovat sopineet harjoitustyönsä suoraan luennoijan (Erja Mustonen-Ollila) kanssa palauttavat harjoitustyönsä myös hänelle. Näille poikkeustapaus -opiskelijoille luennoija on lähettänyt sähköpostin liitteenä oman palautusohjeen! Palautusaika DL on kuitenkin sama kaikilla opiskelijoilla. Raporttiin laaditaan seuraavat osiot, jotka ovat kuvattu tarkemmin alempana: 1. Tehtävänannon kuvaus ja työn rajaukset. 2. Tietokannan käsitemalli ja eheyssäännöt. 3. Raportti ohjelmallisesta toteutuksesta. 4. Yhteenveto. Mitä ongelmia jouduttiin ratkomaan tai mitä erityistä havaittiin ja opittiin tietokannan toteutuksen yhteydessä.

5 Ohjelmallisessa toteutuksessa käsitemallista relaatiomalliksi muunnettu malli toteutetaan relaatiotietokannaksi (= tietokanta, jota asiakas voi käyttää.) Toteutus koostuu edelleen kahdesta vaiheesta: Ensin luodaan relaatiotietokanta SQLite3 -työkalulla. Tässä vaiheessa tehdään käsitemalliin tarpeelliset korjaukset ja lisäykset, jotta tietokanta toimii oikein. Toisessa vaiheessa laaditaan tietokannalle käyttöliittymä, jonka avulla sitä voi käyttää. Tätä varten toimitetaan harjoitustyöpaketissa valmis Python -kielinen ohjelmapohja, johon ryhmä tekee oman tietokantansa vaatimat muutokset. Vaatimukset Harjoitustyön suorittamiseksi edellytetään alla olevat asiat: Suunnitteluosuus: - Käsitemallin tulee koostua ainakin noin 7 10 käsitteestä (yksilötyyppi) ja täten lopullisen tietokannan tulee koostua ainakin yhtä monesta relaatiosta eli taulusta. Relaatiomalli voi myös olla laajempi, mutta ei suppeampi. - Tietokantaan tulee toteuttaa ainakin viisi kyselyä (queries) tai näkymää (views), jotka tuottavat jonkin/joidenkin loppukäyttäjien kannalta hyödyllistä tietoa. JOIN-lausetta on käytettävä ainakin yhdessä kyselyssä. - Tietokannassa ei saa esiintyä tietorakenteita, jotka ovat relaatiomallin vastaisia. Kts. lisätietoa harjoituksissa, jotka liittyvät työn esittelyyn, viikko 2-7. Ohjelmallinen toteutus: - Tietokanta on testattavissa ja käytettävissä sekä SQLite3 että Python- (tai muunkielisen, tulkattavan tai käännetyn) sovelluskäyttöliittymän kautta. - Käyttöliittymän avulla voidaan selata tietokannassa olevia tietoja, päivittää olemassa olevia tietoja, sekä hakea ja poistaa tietoja. - Tietokantaan tehtävänannossa määritetyt kyselyt ovat ajettavissa käyttöliittymän kautta. - Käyttöoikeuksien hallinta. Käyttäjäryhmät ovat määritetty tietokannan tehtävänannossa. Käyttöoikeudet koskevat kyselyjä ja lisäys/muokkaustoimintoja. Kiittäen hyväksytty harjoitustyö Harjoitustyöstä voidaan laatia kiittäen hyväksytty versio, joka nostaa kurssin loppuarvosanaa yhdellä. Tällaisen version vaatimuksena on, että perusversion lisäksi toteutetaan jokin seuraavista kolmesta laajennuksesta. - Tietokannassa on yli 10 taulua. Tietokannassa on näkymiä ja useita JOINlauseilla rakennettuja kyselyjä. Eheyssäännöistä pidetään huolta joko ohjelmallisesti tai usein eri CHECK-lausein taulujen rakenteessa. - Itse toteutettu ohjelmallinen käyttöliittymä (tekstipohjainen, selain, työpöytäympäristö.) - SQLiten korvaaminen tietokantapalvelimella, jolloin koodipohja muutetaan asiakasohjelma-käyttöliittymäksi; tai kahden eri sulautetun tai palvelin vaihtoehdon kevyehkö vertailu ja tämän raportointi. - Harjoitustyötä raportoitaessa on opiskelijan/kahden opiskelijaryhmän kerrottava, minkä laajennuksen hän/he työlleen toteutti/toteuttivat. 5

6 VAIHE 1: SUUNNITTELU Aloita työ tutustumalla oheiseen raporttipohjaan, joka löytyy tämän dokumentin lopusta. Älä välitä tässä kohtaa vielä ohjelmatoteutuksesta eli relaatiomalliksi muuntamisesta (konvertointi), vaan etene seuraavaan vaiheeseen vasta kun olet täyttänyt raporrtipohjan luvut 1. Määritys ja 2. Käsitemalli. Raporttipohjan loput luvut täytetään ohjelmatoteutuksen jälkeen. 6

7 VAIHE 2: RELAATIOMALLIKSI MUUNTAMINEN (KONVERTOINTI) Ohjelmatoteutuksessa tuotetaan tietokantasuunnitelmasta varsinainen relaatiotietokanta, jota asiakas voi käyttää. Ensin opiskelijan on muutettava tietokannan käsitemalli ja muu suunnitelma- aineisto relaatiomallin mukaiseksi esitykseksi, ts. konkreettiseksi tietokannaksi. Tämän jälkeen relaatiotietokannalle on tarjottava ohjelmallinen käyttöliittymä, jotta asiakas voi sitä hyödyntää (lisätä tietoa, poistaa tietoa, suorittaa kyselyjä) ja jotta esimerkiksi käyttöoikeuksia voidaan hallinnoida. Tässä osiossa suoritetaan näistä työvaiheista ensimmäinen, eli muunnetaan käsitemalli relaatiomallin mukaiseksi relaatiotietokannaksi. 1. SQLite tiedonhallintajärjestelmä & Pythonohjelmointikielen SQLite3- kirjasto Suunnittelussa tehty käsitemalli muunnetaan relaatiomalliksi SQLite tiedonhallintajärjestelmän avulla, joka on tarkoitettu relaatiotietokantojen tiedonhallintaan. SQLite:ä käytetään esim. siten, että Python- ohjelmontikielellä tehdään ensin perusohjelma ja siihen ohjelmaan lisätään SQL-väittämiä ja lauseita. Tällöin puhutaan sulautetusta SQL:stä (engl. embedded SQL). Jos halutaan käyttää tietokantaa SQL-käskyjen avulla Python-ohjelmassa, käytetään yleensä hyväksi tarkoitukseen sopivaa Python-kirjastoa. Vaikka kirjastoja on monta, niin tässä harjoitustyössä käytämme kirjastoa SQLite3, jonka avulla voi käyttää SQLitenimistä tietokannan tiedonhallintajärjestelmää. SQL-käskyjä siis liitetään Python-kieliseen ohjelmaan käyttämällä hyväksi sopivia kirjastofunktioita, esimerkiksi Python-kirjastoa SQLite3. Tietokantayhteys luodaan komennolla sqlite3.connect (filename). Tarvitset myös tässä kohtaa ns. tietokantakursorin, joka on se osa ohjelmastasi, joka antaa tietokannalle käskyjä ja vastaanottaa siltä tietoa. SQLite on laajalti käytetty relaatiotietokannan tiedonhallintajärjestelmä, jonka pääasiallinen käyttötarkoitus on toimia tiedonhallintajärjestelmänä ohjelmistoille ja ympäristöille, joissa ei ole tarpeen käyttää PostgreSQL, MySQL, Firebird tms. raskaita tietokantapalvelimia. SQLite on kehitetty ohjelmointikieli- C:llä, mutta se tarjoaa rajapintoja myös useille muille ohjelmointikielille. Käytössä on lisäksi erilaisia graafisia työkaluja ja SQLitetietokantoja voi avata jopa OpenOfficella. Vastaavia sulautettuja relaatiotietokantoja ovat myös esim. HSQLDB, H2, Apache Derby, jne. (jotka ovat toteutettu Javalla, ja saattavat siten kiinnostaa eritoten Javalla työskenteleviä). SQLitella voidaan sulautettujen toteutusten ohella luoda ja manipuloida relaatiotietokantoja myös suoraan "käsin" asiakasohjelmalla tai ajamalla SQLkomentosarjoja tiedostosta, johon tietokannan käyttämä data on tallennettu. SQLite ei siis tarvitse erillistä tietokantapalvelinta toimiakseen. Käytämme tätä ominaisuutta hyödyksi kun nyt muunnamme tietokantasuunnitelman relaatiomalliski. Näin saadaan luotua tietokanta, jonka toiminta on testattu ja jota voidaan sitten käyttää minkä tahansa sovelluksen kautta, joka hyödyntää SQLite-rajapintoja. Niiden avulla ohjelmakoodiin 7

8 voidaan upottaa SQL-komentoja ja näin relaatiotietokannalle tarjota käyttöliittymä. Tähän palaamme työn viimeisessä vaiheessa, sillä harjoitustyössä pohdittavat loppukäyttäjät, esimerkiksi N-divarin sihteeri tai joukkueen valmentaja eivät suinkaan voi käyttää toimitettavaa tietokantaratkaisua suoraan raa'alla SQL-kielellä, joten käyttöliittymä on tarpeen. Vertailukohtana voidaan pitää vaikka yliopiston Oodia tai Noppaa, jotka ovat itseasiassa vain käyttöliittymiä relaatiotietokantaan. SQLite3 löytyy asennettuna yliopiston Linux-työasemista sekä Windowsluokan xxxx koneista. Käyttö Linux- ja Windows-ympäristöissä on tämän ohjeen kannalta yhtenevää. (SQLiten -ohjelmointikielikohtaiset kirjastot voivat olla tarpeen asentaa erikseen riippuen kehitysympäristöstä.) 2. SQLite3 käyttö Ennen kuin aletaan varsinainen muunnos, testataan, että SQLite3 on asennettu. Tämän jälkeen tutustutaan sen käyttöön komentorivi-tilan kautta. 1. Tarkistetaan, että SQLite on asennettuna ja luodaan tyhjä tietokanta. (Siirrytään UNIX-ympäristössä maax-kotihakemistoon) ~$ mkdir Tietokannat ~$ cd Tietokannat ~/Tietokannat$ sqlite3 -version :52:41 c7c6050ef060877ebe77b41d959e9df13f8c9b5e (Huom. Käytä vähintään versiota parannetun vierasavaintuen vuoksi. Aiemmissa versioissa vierasavainten eheystarkistukset tulee kirjoittaa käsin.) 2. Perustetaan tai avataan tietokanta: ~/Tietokannat$ sqlite3./testikanta SQLite version :52:41 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> SQLite voi nyt vastaanottaa komentoja. Tutustu.help -käskyllä käytössä oleviin komentoihin. Erityisesti:.read (lue SQL-komentosarja tiedostosta).tables (listaa taulut).schema (esitä taulun rakenne) Kehotteeseen voidaan syöttää suoraan SQL-komentoja. Komento voi muodostua useista riveistä ja sen suoritus alkaa vasta kun annetaan puolipiste. Tietokannan rakenne voidaan luoda toki näin, mutta helpompaa on kirjoittaa CREATE TABLE ja INSERT INTO -käskyt erilliseen tekstitiedostoon ja pyytää SQLitea suorittamaan tiedoston sisältö. 8

9 3. Suoritetaan SQL-komentosarja sqlite> PRAGMA foreign_keys=on; (Pakottaa vierasvainten eheystarkistukset päälle.) sqlite>.read N-divari_SQL-komennot.txt (Pyydetään suorittamaan SQL-komentosarja tiedostosta.) Katsotaan mitä saatiin aikaan: qlite>.tables Edustaa Huomautus Ottelu Pelipaikka Tuomaroi Edustaja Joukkue Pelaaja Toimitsija sqlite>.schema Ottelu CREATE TABLE Ottelu ( OtteluID INTEGER, KotijoukkueID INTEGER, VierasjoukkueID INTEGER, Tyyppi VARCHAR(1) NOT NULL, Tulos VARCHAR(5), Paivamaara DATE NOT NULL DEFAULT CURRENT_DATE, PelipaikkaID VARCHAR(32), 9 PRIMARY KEY(OtteluID), FOREIGN KEY(KotijoukkueID) REFERENCES Joukkue(JoukkueID), FOREIGN KEY(VierasjoukkueID) REFERENCES Joukkue(JoukkueID), FOREIGN KEY(PelipaikkaID) REFERENCES Pelipaikka(PelipaikkaID), CHECK (Tulos LIKE '%-%'), CHECK (Tyyppi IN ('V', 'E')) ); sqlite> (Ts. nähdään taulun rakenne.) 4. Operoidaan tietokantaa sqlite>.mode columns sqlite>.headers on (Asettelee tulosteita paremmin) sqlite> select * from joukkue; JoukkueID Nimi Pisteet Status Sammonlahden Äijäpalloilijat 6 P 2 FC Puulaaki 3 P 3 Saimaan Senioriurheilijat 0 T 4 Pallon Pallopojat 11 P 5 Team Ruohosaari 16 L sqlite> sqlite> insert into joukkue values (6, 'UusiTiimi', 0, 'P'); sqlite> select * from joukkue; JoukkueID Nimi Pisteet Status

10 1 Sammonlahden Äijäpalloilijat 6 P 2 FC Puulaaki 3 P 3 Saimaan Senioriurheilijat 0 T 4 Pallon Pallopojat 11 P 5 Team Ruohosaari 16 L 6 UusiTiimi 0 P sqlite> (Toisaalta, jos jätetään values pois:) sqlite> insert into joukkue (6, 'UusiTiimi', 0, 'P'); Error: near "4": syntax error sqlite> sqlite>.quit (Lopetetaan) 5. Huomaa: SQLite pitää huolta CHECK-muotoisista eheystarkistuksista. Mutta muista asettaa vierasavainten eheystarkistukset erikseen päälle, koska näin ei oletuksena ole yhteensopivuussyistä vanhojen SQLite-versioiden kanssa. Luotu tietokanta tallentuu levylle ja se voidaan avata uudestaan ja edelleen myöhemmin ottaa käyttöön esim. ohjelmallisesti rajapintojen kautta, kuten teemme harjoitustyön viimeisessä työvaiheessa. Tietokanta koostuu tästä yhdestä tiedostosta, joka SQLitella on luotu. Sitä voi siis kopioida ja siirrellä vaivatta paikasta toiseen, koska mitään palvelinyhteyttä tms. ei tarvita. 3. Työvaiheen suorittaminen Luo tietokantasuunnitelmaasi vastaava relaatiotietokanta SQLite3:lla. Luo taulut ja niiden kaikki rakenteelliset ominaisuudet, kuten esim. CHECK-tarkistukset. Vie tietokantaan jonkin verran testidataa. Tässä vaiheessa saatetaan huomata, että käsitemalli ei ole täysin oikea ja sitä pitäisi muuttaa. Tarvitaan esim. uusia tauluja, taulujen rakenne ei ole korrekti, jokin tärkeä attribuutti puuttuu, jne. Korjaa käsitemallia samalla ja päivitä raporttipohjaa vastaavasti. Kirjoita kyselyjen SELECT-lauseet muistiin ja testaa (ja korjaa) niitä tietokantaasi vastaa ajettuna. Työvaihe on suoritettu, kun kaikki toimii suunnitellusti ja tietokantasi olisi periaatteessa käytettävissä SQLite-komentorivin kautta. Älä etene viimeiseen työvaiheeseen ennen kuin tietokanta toimii! Muista: Täytä Raporttipohjan lukuun 3 Tietokantatoteutus työvaiheessa tekemiäsi havaintoja. Muista: Tallenna tietokannan luomiseksi tarvittavat SQL-komennot tekstitiedostoon, jonka pidät tallessa. Tämä tiedosto tulee voida suorittaa SQLitella.read -komennolla, kuten yllä. Se liitetään osaksi lopullista harjoitustyön -palautusta. 10

11 VAIHE 3: KÄYTTÖLIITTYMÄN LUOMINEN Harjoitustyön viimeisessä vaiheessa luodaan relaatiotietokannalle käyttöliittymä, jonka kautta asiakas voi sitä käyttää. Pelkästä relaatiotietokannastahan ei sellaisenaan ole asiakkaalle iloa. Tarvitaan jokin ohjelma, jonka kautta tietokantaa vastaan voidaan suorittaa ksyelyjä ilman SELECT-käskyjä. Toisaalta pitää voida suorittaa lisäyksiä, poistoja ja tietueiden päivityksiä ilman hankalia SQL-komentoja. Käyttöoikeuksia tulee myös voida valvoa. Harjoitustyöpaketissa tarjotaan yksinkertainen Python- kielinen esimerkkiohjelma, joka toteuttaa tämän työvaiheen raporttipohjan esimerkkitietokannalle (Puulaaki / N-divari) käyttäen hyväksi SQLite3 ohjelmointirajapintoja. Voit käyttää tätä koodipohjaa oman ohjelmasi perustana, mikäli et halua luoda uutta. Tällöin tässä työvaiheessa tehtävänäsi on mukauttaa koodi oman tietokantaasi ja työsi määrityksiin sopivaksi. Käymme alla läpi, miten tämä kannattaa tehdä. 1. Python-kielinen esimerkkiohjelma Python-esimerkki löytyy työpaketin alihakemistosta Ohjelmatoteutus. Koodi on mahdollisimman yksinkertaista ja sisältää vain ohjelmarakenteita ja toteutustapoja, jotka ovat tuttuja ohjelmoinnin perusteet -kurssilta. Koodissa ei siis käytetä Pythonin olio-ominaisuuksia tai muita edistyneitä menetelmiä ja sen on siten kaikkien opiskelijoiden ymmärrettävissä ja muokattavissa. Python-toteutusta ei tarvitse osata ohjelmoida itse, mikäli tyydytään harjoitustyön läpäisemiseen perustasolla. Tällöin riittää, että koodia muokataan sen verran, kuin oma tietokantatoteutus vaatii. Käytännössä tämä tarkoittaa koodissa: - INSERT komentojen ja niitä kutsuvien funktioiden muokkaamista. - Käyttöoikeustiedoston muokkaamista. - Kyselyt-tiedoston laatiminen omien kyselyiden perusteella. Käymme läpi nämä kohdat alempana. Pohja koostuu seuraavista tiedostoista, jotka kuvataan myös tarkemmin alempana: - main.py - UI.py - file_io.py - query.py - insert_alter.py main.py - class_def.py - users.data (käyttäjätunnukset sisältävä tiedosto) - puulaaki.sql (kyselyt sisältävä tiedosto) - puulaaki.db (SQLitella luotu tietokanta) Ohjelma suoritetaan Windows-ympäristössä ajamalla Python-tulkilla. Linux-ympäristössä voidaan komentaa suoraan./puulaki työhakemistossa. 11

12 2. Esimerkkikoodin ominaisuuksia Ohjelma on teksti- ja komentorivipohjainen. Se on monelta osin vajavainen oikeaksi tietokantasovellukseksi. Käyttöliittymä esim. on kankea ja koodin pituuden minimoiseksi virheentarkistusta on niukasti. Koodista kuitenkin nähdään, miten upotettua SQL:ää voidaan käyttää ja minkälaisia teknisiä asioita on huomioitava tällaista sovellusta kehitettäessä. Ohjelman ominaisuuksia ovat: users.data - Käyttöoikeuksien hallinta. - Kaksi eri tapaa "upottaa" SQL:ää Käyttöoikeudet Ohjelma lukee käyttäjien tiedot tiedostosta, joka sijaitsee oletuksena työhakemistossa. Tämä ei ole tietenkään oikeasti tieoturvallinen tapa hallita käyttöoikeuksia, mutta riittää harjoitustyön tarpeisiin. Katso tiedoston formaatti itse tiedostosta, johon se on dokumentoitu. Harjoitustyöryhmän tulee muokata tiedosto omia käyttäjäryhmiään ja käyttäjiään vastaavaksi. Käyttöoikeuksia hyödynnetään: - Tiedostosta luettavissa kyselyissä. - INSERT, UPADTE ja DELETE-käskyjä suorittavissa funktioissa (insert_alter.py, UI.py) Käyttäjäryhmät Users.data tiedosto määrittää käyttöoikeuksia UNIX-pohjaisista järjestelmistä tutulla periaatteella, jossa on a) käyttäjäryhmiä, kuten admin, secretary, coach, joista jokaiselle on päätetty tällaiselle käyttäjätyypille tarpeelliset oikeudet; b) yksittäisillä sovelluksen käyttäjllä on käyttäjätunnus ja salasana; c) jokainen käyttäjätunnus kuuluu johonkin edellä mainituista käyttäjäryhmistä, minkä perusteella käyttäjä saa kyseisen ryhmän oikeudet. users.data:ssa esim. on useita secretary-ryhmään kuuluvia tunnuksia. Heillä on kaikilla yhtäläiset käyttöoikeudet Kyselyt ja käyttöoikeudet Tiedostosta luettavat kyselyt (puulaaki.sql) määrittävät kyselykohtaisesti, millä käyttäjäryhmillä on oikeus suorittaa kysely. Ohjelma osaa näin ajon aikana rakentaa käyttäjälle listan vain niistä kyselyistä, joihin hänellä on suoritusoikeus. Ts. coach-ryhmään kuuluva käyttäjä ei näe kyselyjä, jotka ovat tarkoitettu vain sihteerille. 2.2 Kaksi tapaa "upottaa" SQL:ää Yksinkertaisin tapa suorittaa SQL:ää on upottaa SQL-komentoja suoran osaksi Python-koodia. Kuten insert-alter.py:stä nähdään, on tämä hyvin työlästä ja tilaa vievää, joskin suoraviivaista ja helppoa. Toisaalta voidaan SQL-sarjojen

13 suorittamista automatisoida. Harjoitustyö -pohjassa näin tehdään kyselyjen ja osan INSERT-komentojen osalta. Meillä on siis kaksi eri lähestymistapaa SQL:n suorittamiseen. Kyselyt ovat tehty automatisoidulla tavalla. Ne luetaan tiedostosta (esim. tietokanta.sql kts. file_io.py), joka noudattaa erityistä notaatiota, jonka avulla ohjelma voi suorituksen aikana rakentaa kyselyt automaattisesti ilman koodiin upotettavaa SQL:ää. Ohjelmakoodissa ei siten tarvitse tietää, mitä kyselyjä ohjelmalla tullaan suorittamaan eikä siis myöskään SQL-lauseita tarvitse kirjoittaa ohjelmakoodiin. Tällaisen koodin ylläpito on helppoa. Uuden joukkueen ja pelaajan lisääminen (SQL INSERT) sen sijaan on tehty täysin räätälöidysti. Huomataan, että nämä kaksi aliohjelmaa olisivat työläitä toistaa jokaiselle taululle. Lisäksi kaikki tietokantaan tehtävät muutokset saattavat vaatia edelleen muutoksia näihin aliohjelmiin. Toisaalta tällöin voidaan käyttäjälle tarjota juuri halutunlainen käyttöliittymä ja tehdä varsin helposti tarkka virheentarkistus syötteitä vastaanotettaessa. Ylläpito on työläämpää ja virhalttiimpaa. Insert-alter.py:ssä loput INSERT sekä kaikki UPDATE ja DELETE komennoista ovat automatisoidut. Niihin liittyvä käyttöliittymä on siksi vähän kömpelömpi kuin räätälöityjen INSERTien kohdalla, mutta koodi on lyhyttä ja toimii kaikilla tauluilla ja rakenteilla. Vastapainona koodi on hiukan teknisempää, sillä on voitava ennakoida, miten mielivaltaisesta taulusta löydetään esim. mielivaltainen pääavainarvo(joukko) ja sen avulla rakennetaan SQL-lauseen WHERE-ehto. Kyselyissä meidän on taasen osattava sijoittaa muuttujat, kuten henkilön nimi tai tapahtuman päivämäärä SQL-lauseeseen. Python-pohja esittää näihin ongelmiin yhden ratkaisutavan. Yhtenvetona nähdään, että kumpikin tapa tuottaa halutun lopputuloksen, mutta ensimmäinen on tilaavievää ja työlästä, ja vaatii ylläpitoa aina kun kohdetietokanta muuttuu rakenteellisesti. Automatisoitu tapa on kompakti eikä vaadi ylläpitoa, mutta on puolestaan teknisesti vaativampi. 3. Esimerkkipohjan tiedostojen sisältö: class_def.py : Luokkien määritykset. Luokkia käytetään kuten esim. C:n strukteja, eli ne eivät sisällä olio-ominaisuuksia. Näitä ei tarvitse muokata. main.py : Ohjelman suoritus alkaa täältä. UI.py : Käyttöliittymään liittyviä funktioita, jotka lähinnä tulostavat valikoita, joissa käyttäjä tekee valintoja. Muuta tänne esim. ohjelman nimi ja valikoiden tekstit omaan työhösi sopiviksi. Muita muutoksia ei välttämättä tarvita. file_io.py: Tiedostonkäsittelyyn liittyvät funktiot. Katso, että ymmärrät mitä funktiot tekevät. Näitä ei tarvitse muuttaa, jos tarve on vain läpäistä työ. query.py : Aliohjelmat tekevät asioita, jotka liittyvät SQL-kyselyjen suorittamiseen. Kyselyt luetaan tiedostosta (file_io.py:ssä) ja suoritetaan automatisoidusti, joten perustoteutuksessa koodia ei välttämättä tarvitse muuttaa. Edellytyksenä on, että kyselytiedoston SELECT-komemnot ovat huolella testatut harjoitustyön toisessa työvaiheessa, eli relaatiomalliksi viennissä. 13

14 insert_alter.py : INSERT, UPDATE ja DELETE -komentoja suorittavat funktiot. Näistä ainakin räätälöityjä INSERT-aliohjelmia (2 kpl) on väistämättä muokattava, jotta komennot vastaavat kohdetietokannan rakennetta. Funktiot ovat dokumentoitu koodissa. Edellytyksenä on jälleen, että käytettävät komennot ovat huolella testattu harjoitustyön edellisessä työvaiheessa. Kyselyt-tiedosto (tietokannan_nimi.sql) : Tätä tiedostoa on muokattava. Määritä tietokantasi kyselyt täällä tiedostossa kuvatun formaatin avulla. Testaa kyselyt ensin huolella työvaiheessa kaksi. users.data : Tätä tiedostoa on muokattava. Määritä tietokantasi käyttäjät täällä tiedostossa kuvatun formaatin mukaisesti. 4. Työvaiheen suorittaminen Mukauta Python-koodi omaa tietokantaasi vastaavaksi. Tee yksi muutos kerrallaan: Esim ensin users.data käyttäjät. Sitten kyselyt -tiedosto. Kun ohjelma suoruttaa nämä oikein, siirry mukauttamaan esim. valikoiden tekstit ja ohjelman nimi yms. triviaalit editoinnit, joihin riittää print- ja input- funktioiden merkkijonojen tarkistaminen. Aja koodia aina muutosten jälkeen, jotta et jätä syntaksivirheitä. Lopuksi mukauta insert, update ja delete aliohjelmat yksi kerrallaan niin, että ohjelmasi suoriutuu myös näistä toiminnoista. Voit tietysti muokata ja parantaa ohjelmakoodia niin paljon kuin haluat. Muista: Täytä Raporrtipohjan lukuun 3 Tietokantatoteutus työvaiheessa tekemiäsi havaintoja. Muista: Katso palautusohje tämän dokumentin lopusta. 14

15 PALAUTUSOHJE A. Kaikissa tapauksissa harjoitustyö palautetaan kurssin luennoijalle! Harjoitustyö palautetaan sähköpostilla. B. Ne poikkeustapausopiskelijat, jotka ohjelmoinnin perusteet kurssin- esitietonsa puutteen takia ovat sopineet harjoitustyönsä suoraan luennoijan (Erja Mustonen- Ollila) kanssa palauttavat harjoitustyönsä myös hänelle. Harjoitustyö palautetaan sähköpostilla. Palautusaika DL on kuitenkin sekä tapauksissa A että B kaikilla sama (katso yllä). A. Palautukseen kuuluu: - Raporttipohja PDF-muodossa. (Työvaihe 1) - Tietokannan luomiseksi tarvittavat SQL-käskyt, jotka voidaan suorittaa SQLite3:lla.read -komentoa käyttäen sekä kyselyjen SELECT-lauseet. (Työvaihe 2) - Ohjelmatoteutus, johon kuuluu sekä SQLite3-muotoinen tietokanta että sovelluskäyttöliittymä, joka hyödyntää tietokantaa. (Työvaihe 3) Sähköpostipalautus: 1. Ryhmän jäsenistä yksi lähettää kurssin luennoijalle sähköpostiviestin, jonka otsikko on sukunimi1 sukunimi2. Esim. Ryhmä Matti Meikäläinen ja Minna Nieminen palauttaa viestillä Meikäläinen Nieminen. 2. Sähköpostin viestikenttään kirjoitetaan ryhmän jäsenten koko nimet ja opiskelijanumerot. 3. Mikäli kyseessä on kiittäen hyväksytty versio, kirjoita viestikenttään KIITTÄEN HYVÄKSYTTY, jotta luennoija muistaa katsoa tähän arvosanaan tarvittavat lisäosat. Jos arvosanasta ollaan erimielisiä, niin kurssin luennoija ratkaisee näissä tapauksissa harjoitustyön arvosanan. 4. Sähköpostin liitteeksi laitetaan yhdessä paketissa (esim. zip, tar.gz,...) kaikki työhön kuuluva materiaali. 5. Paketin sisältö on seuraava: - Raportti.pdf - Select.txt (sisältää kyselyt pelkkinä SELECT-lauseina) - SQL-komennot.txt (SQLite3-tietokannan luomiseksi tarvittavat komennot) - Hakemisto, jonka nimi on Ohjelmatoteutus. Tähän hakemistoon laitetaan kaikki ohjelmakoodi ja muut tiedostot, joita sovelluksen ajamiseksi tarvitaam. Laita myös jokin valmis versio SQLite3-muotoisesta tietokannasta mukaan, jolla ohjelmaa voi heti testiajaa. 15

16 ESIMERKKIAIHEITA Esiintyjätoimisto: Tarvittavia tietoja voivat olla esim. artisti/laulaja, soittaja, yhtyeet, (artisti esiintyy jonkin yhtyeen kanssa, yhtye koostuu soittajista), vuokrattavat instrumentit, keikkapaikat, järjestäjät, managerit, Python-koodia avstaavat käyttäjäryhmät voivat olla IT-admin, toimiston sihteeri, yhtyeen/artistin manageri. Levyarkisto: Tarvittavia tietoja voivat olla esim. albumi, tallenne (fyysinen/digitaalinen kopio albumista), artisti, kappale/raita (joka voi kuulua x eri albumiin ja/tai äänitteeseen), kaveri, lainaus, käyttäjäryhmiä voivat olla IT-ylläpitäjä, arkiston omistaja/halinnoija, kaveri/vieras. Opisto: Tietoja mm. kurssit, opettajat, muut työntekijät, opiskelijat, kurssiilmoittautumiset, kurssisuoritukset, tapahtumat, oppikirjat/prujut (kursseihin liittyvät), jne. Käyttäjäryhmät esim: IT-admin, opintotoimiston sihteeri, kurssipitäjä. [Tarpeen mukaan lisää vielä.] 16

17 RAPORTTIPOHJA 1 Määritys Kuvaa tässä työn aihe eli tarve, johon tietokanta kehitetään. Määritä tietokannalle käyttäjät. Kuvaa ongelma-alue sellaisella tarkkuudella, että se voidaan mallintaa tietokannaksi ja sitä verrata kriittisesti käsitenalyysiin työtä arvioitaessa. Huomaa, että tietokanta tullaan käyttämään ohjelmiston kautta, ei suoraan sellaisenaan raa'an SQL-kielen avulla. Voit määrittää tässä siten myös käyttöliittymään ja muihin ohjelmallisiin tarpeisiin liittyviä seikkoja, jos esim. aiot muokata annettua ohjelmakoodia laajemminkin tai olet sopinut omasta harjoitustyön toteutustavasta (Web-sovellus / MySQL, tms.) Esimerkki: N-divisioona N-divari -työnimellä toteutetaan tietokanta asiakkaalle, joka hallinnoi puulaaki -jalkapallodivisioonaa. Koska käyttäjä on järjestö/kerho tms. ja toiminta pienimuotoista, on tietokanta mahdollisimman kevyt. Tietokannassa tulisi voida ylläpitää tietoja liigaan osallistuvista joukkueista ja kunkin joukkueen pelaajista. Tärkeitä pelaajien tietoja ovat nimi, pelinumero ja yhteystiedot. Myös pelaajien keräämistä pisteistä kauden aikana pidetään kirjaa. Joukkueella on lisäksi aina valmentaja ja vastuu/yhteys-henkilö (manageri), ja heidän tietonsa halutaan myös helpommin sähköisesti saataville. Joukkeet pelaavat toisiaan vastaan, ja otteluiden tulokset tulee voida tallentaa tietokantaan. Otteluihin käytettävissä olevat tuomarit ovat vapaaehtoisia, joten heistä tarvitaan myös yhteystiedot sekä mahdollisia jälkiselvittelyjä varten tieto, ketkä ovat tuomaroineet kussakin pelatussa ottelussa. Lopuksi vielä tarvitaan eri pelipaikkojen tiedot (esimerkiksi katuosoite, kentästä vastaavan tahon puhelinnumero, milloin otteluja voi järjestää kyseisellä kentällä, jne.) Tietokantaa käyttävät: Ylläpitäjä, joukkueiden valmentajat ja järjestön sihteeri. Ylläpitäjä voi muokata kaikkia tietokannan perustauluja, kyselyjä, näkymiä ja luoda uutta tietoa ja tietorakenteita. Valmentajat ja joukkueiden edustajat voivat selata kaikkia tietoja ja joitain heille erityisesti laadittuja ksyelyjä. He eivät voi lisätä, poistaa tai muokata tietoja. Sihteeri voi muokata seuraavia tietoja (lista...) ja nähdä seuraavat tiedot (lista...). Sihteerin työtä helpottamaan tarvitaan joitain vakiokyselyjä (tai näkymiä), jotka kuvataan alla. Seuraavat tietokantakyselyt on vähintään toteutettava: (1) Listaa tietyn pelaajan yhteystiedot, pistetilanne ja varoitukset. (2) Esitä ottelut, joissa tuomari X on ollut toimitsijana. (3) Listaa joukkueen X otteluhistoria. (4) Esitä kentällä X pvm:nä Y pelatun ottelun valmentajien yhteystiedot. (5) Tarkista, onko kenttä X varattu tiettynä päivänä jo jollekin ottelulle ja jos on, niin anna joukkueiden yhteyshenkilöiden puhelinnumerot. Jne... Kyselyjen ei tarvitse olla monimutkaisia, mutta mukana on oltava myös kysely, joka vaatii JOIN-määritteen käytön SELECT-lauseessa. 17

18 2 Käsitemalli Tietokannan suunnittelu aloitetaan käsiteanalyysillä. Analyysin kohteena on koko toimintayksikkö tai sen osa (rajattu alue). Käsitenalyysin tuloksena syntyy kohdealuetta kuvaava looginen malli, jota kutsutaan käsitemalliksi. Käsitemalli esitetään graafisesti käsitekaaviona ja täydennetään tietokuvauksin. Kohdealue kuvataan pelkistetysti tietokantaa varten. Käsitemalli sisältää kohdealueen tietojen rakenteen lisäksi eheyssääntöjä. Käsitenalyysin käyttö johtaa tietokantaratkaisuihin, jotka ovat tieto- ja toteutusriippumattomia. Tässä kohdassa harjoitustyötä on tavoitteena kuvata tietokannan käsitenanalyysin avulla laadittu käsitemalli. Voit käyttää kurssin harjoituksista tuttua käsitemallia (englanninkieliseltä nimeltään Entity-Relationship model (ER-malli)) tai vaihtoehtoisesti UML (Unified Modelling Language) -malleja. Kuvaa vähintään: Yksilötyypit (käsite), yhteystyypit (eli käsitteiden välinen suhde) ja niiden suhteiden asteet (yhden suhde yhteen (1:1); yhden suhde moneen (1:m); monen suhde moneen (m:n)), ominaisuustyypit eli attribuutit. Merkitse kullekin yksilötyypille (käsitteelle) erikseen pää- ja vierasvaimet. Avainten etsiminen tehdään erikseen jokaiselle yksilötyypille (käsitteelle), jolle tulee laatia ja löytää yksilöivä perusavain sekä toisio- ja viiteavaimet. Perusavaimia ja toisioavaimia koskevat omat eheyssäännöt. Eheyssääntöihin luetaan vain sellaiset määritykset, jotka eivät automaattisesti toteudu relaatiomallia noudatettaessa. Ominaisuustyyppien kelvollisten arvojen joukkoa kutsutaan sen arvoalueeksi: pituus, muoto, vaihteluväli, yksikäsitteisyys, NULL-arvon salliminen ja mahdollinen alkuarvo. Arvoaluemäärittelyt on tehtävä myös avaimille. Perusavain eikä sen osaa saa saada NULL-arvoa, toisioavaimet voivat saada NULL-arvon. Myös yhteystyypeille laaditaan tarvittaessa eheyssäännöt. Jos yhteystyypeille syystä tai toisesta on attribuutteja, se kuvautuu tässä tapauksessa yksilötyypiksi (käsite). Esimerkki: N-divisioonan Käsitemalli (katso kuva 1 alla). 18

19 Kuva 1. N-divisioonan Käsitemalli. Ominaisuustyypit: Pelaaja Ominaisuustyyppi Tietotyyppi Huomautuksia PelaajaID Integer, kasvava Pääavain JoukkueID Integer, kasvava Pakollinen; Vierasavain Etunimi Teksti (15) Pakollinen Sukunimi Teksti (20) Pakollinen Pelinumero Integer (1-99) Pakollinen; Yksilöllinen arvo Osoite Osoite-tyyppi Kts. tietotyypin määrittely Puhelinnumero PuhNro-tyyppi Kts. tietotyypin määrittely Jne... Eheyssäännöt, esim: - Tietokannassa on vähintään aina JoukkueID 0, joka on rosteri pelaajille, jotka eivät vielä / enää kuulu mihinkään joukkueeseen, mutta joiden tiedot pidetään kannassa. 19

20 - Epävirallisista otteluista ei kirjata pelaajien pisteitä eikä toimitsijoita. - Joukkueella ei tarvitse olla valmentajaa, mutta edustaja on pakollinen. - Valmentaja ja joukkueen edustaja/manageri voivat olla sama henkilö. - Pelaaja voi pelata vain yhdessä joukkueessa kerrallaan. - Sama henkilö voi olla tarvittaessa selä ottelun tuomari että toimitsija. - Jos joukkueen statukseksi on merkitty pelaa sijasta lopettanut, ei se voi pelata divarissa, mutta sen tiedot voidaan säilyttää. Siihen ei voia liittää uusia pelaajia. Jos status on tauolla, ei joukkue voi pelata, mutta siihen voi liittyä pelaajia tai sen johto voi muuttua yms. - Jne... 20

21 3 Tietokantatoteutus Raportoi tässä, mitä muutoksia, kompromisseja, yllätyksiä jne. relaatiomalliksi vienti aiheutti käsitemalliin työvaiheen 2 aikana. Kerro, mitä koodipohjaa käytit (oma, esimerkki), miten ohjelma suoritetaan, mitä muutoksia teit käyttöliittymään ja mitä muuta huomioitavaa ohjelman testaamiseen liittyy. Tämä osio on tärkeä, jos poikkeat oletus tehtävänannosta. Esimerkki: Yleistä: Käsitemallin toteutuksessa relaatiomalliksi havaittiin, että useassa taulussa toistuville (katu)osoite- ja puhelinnumero-attribuuteille olisi hyvä luoda oma tietotyyppinsä, joka standardoi virhealttiin esitysmuodon tietokannan laajuisesti. Huomasimme myös, että tietokannan hallintaa helpottaa, mikäli luodaan kiinteä nolla joukkue, johon uusi tai orvoksi jäänyt pelaaja aina oletuksena liitetään. Tätä varten laadittiin uusi eheyssääntö. Kolmanneksi nousi esiin tarve uudelleenarvioida Joukkue, Valmentaja, Edustaja -suhde. Todettiin, että Edustaja ja Valmentaja eivät ole Organisaattorin alityyppejä, sillä sama henkilö voi sittenkin toimia sekä valmentajana että edustajana samalle joukkueelle, ja aluksi kumottu tarve erillisille tauluille palautettiin näin ollen relaatiomallissa. Näkymiin ja kyselyihin ei tehty muutoksia toteutusvaiheessa. SQL- Toteutustapa: Käytimme Python-koodipohjaa, johon tehtiin vain lausekkeiden ja tulosteiden vaatimat pakolliset muutokset. Testatessa huomioitavaa: Ei erityisiä huomioita. Koodissa huomioitavaa: Eheyssääntöihin liittyvät tarkistukset on toteutettu pääasiassa yksinkertaisin CHECK -määrityksin taulujen rakenteissa. Käyttöliittymä tekee myös joitain perussyötteiden tarkistuksia, mutta näiden tehtävänä on lähinnä estää suorituksen päättyminen SQLite-virheisiin. Käyttöoikeudet ovat toteutettu myös mahdollisimman yksinkertaisesti kutsumalla kunkin käyttöoikeusryhmän omaa funktiota, kuten koodipohja esittää malliksi. Ts. koodia ei lähdetty parantamaan. 21

22 4 Keskustelu Mikäli haluat mainita jotakin erityistä, jota ei ole käsitelty aiemmissa luvuissa, voit keskustella tässä näistä asioista. Tämä voi olla eritoten tarpeen vapaavalintaisen työn kohdalla. 22

23 POIKKEUSTAPAUKSET: EI NYKYISEN MUOTOISEN TAI AIEMMAN OHJELMOINNIN PERUSTEET- KURSSIN SUORITUSTA LAINKAAN Mikäli et ole suorittanut ohjelmoinnin perusteet kurssia ja tai olet suorittanut sen jo vuosia sitten, niin ota yhteys suoraan luennoijaan, Erja Mustonen-Ollilaan. Näissä erikoistapauksissa luennoijan kanssa on mahdollista sopia toisenlainen harjoitustyö, jonka ohjaa suoraan kurssin luennoija, ei siis kurssin assistentti. B. Palautukseen kuuluvat ohjeet saat omaan sähköpostiisi kurssin luennoijalta. 23

Liigan taulut ja attribuutit

Liigan taulut ja attribuutit HARJOITUS 3. Tehtävä 1. Laadi harjoitusmielessä kaksi käsitekaaviota, (juniori. Nappula tms.)liiga ja äänitearkisto. Levyarkisto: Tietokannassa tulee olla perustiedot äänitteistä (CD, vinyyli, kasetti),

Lisätiedot

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä

Lisätiedot

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

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

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta Tiedonhallinnan perusteet H11 Ovien ja kulun valvontajärjestelmän tietokanta Nimi: Mikko Haapanen Opiskelijanumero: 0900568 Ryhmä: T09L Työ tehty: 15.3.2010 Mikko Haapanen 15.3.2010 1(7) 1. Asiakasvaatimukset

Lisätiedot

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opintojaksolla: keskitytään relaatiotietokantojen teoriaan ja toimintaan SQL-kieli kyselykielenä

Lisätiedot

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36 !!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat

Lisätiedot

LINUX-HARJOITUS, MYSQL

LINUX-HARJOITUS, MYSQL LINUX-HARJOITUS, MYSQL Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,

Lisätiedot

2. Käsiteanalyysi ja relaatiomalli

2. Käsiteanalyysi ja relaatiomalli 2. Käsiteanalyysi ja relaatiomalli lehtori Pasi Ranne Metropolia ammattikorkeakoulu E-mail: pasi.ranne@metropolia.fi sivu 1 Tietokannan suunnitteluprosessin osat sivu 2 Käsiteanalyysi ER-mallinnus, tietomallinnus

Lisätiedot

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

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

3. Käsiteanalyysi ja käsitekaavio

3. Käsiteanalyysi ja käsitekaavio 3. Käsiteanalyysi ja käsitekaavio lehtori Pasi Ranne Metropolia ammattikorkeakoulu E-mail: pasi.ranne@metropolia.fi sivu 1 Käsiteanalyysi Selvitetään mitä tietokantaan pitää tallentaa Lähtökohtana käyttäjien

Lisätiedot

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010 SQLite selvitysraportti Juha Veijonen, Ari Laukkanen, Matti Eronen Maaliskuu 2010 Opinnäytetyö Kuukausi Vuosi 1 SISÄLTÖ 1. YLEISTÄ SQLITE:STA... 2 2. HISTORIA... 2 3. SQLITEN KÄYTTÖ... 3 3.1 SQLiten asennus

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Olli Opiskelija (123), olli.opiskelija@foo.fi Maija Mallioppilas (321), maija.mallioppilas@foo.fi 13.3. 2007 1 Sisältö 1 Tietokannan kuvaus 3 1.1 Tietokannan rakenne..................................

Lisätiedot

HARJOITUS 2. Kasvattamot ja mittaukset

HARJOITUS 2. Kasvattamot ja mittaukset HARJOITUS 2. Tehtävä 1 Alla on esitetty relaatiotietokannan taulujen rakenne. Mitä ongelmia tähän tietokantaan liittyy jos se yritettäisiin ottaa käyttöön sellaisenaan? Korjaa puutteet ja esitä toimiva

Lisätiedot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3

Lisätiedot

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

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot) SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert

Lisätiedot

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantojen suunnittelu, relaatiokantojen perusteita Tietokantojen suunnittelu, relaatiokantojen perusteita A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit Liite E - Esimerkkiprojekti E Esimerkkiprojekti Olet lukenut koko kirjan. Olet sulattanut kaiken tekstin, Nyt on aika soveltaa oppimiasi uusia asioita pienen, mutta täydellisesti muotoiltuun, projektiin.

Lisätiedot

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

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2017 Kurssikoodi: Saapumisryhmä: Luento 7 TX00CN57-3001 TXQ16ICT, TXQ16S1 ja TXQ16PROS Pasi Ranne 02.10.2017 1/10/17 Helsinki Metropolia University of Applied Sciences 1 Tietokannan

Lisätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta

HELIA 1 (17) Outi Virkki Tiedonhallinta HELIA 1 (17) Luento 4.1 Looginen suunnittelu... 2 Relaatiomalli... 3 Peruskäsitteet... 4 Relaatio... 6 Relaatiokaava (Relation schema)... 6 Attribuutti ja arvojoukko... 7 Monikko... 8 Avaimet... 10 Avain

Lisätiedot

T harjoitustyö, kevät 2012

T harjoitustyö, kevät 2012 T-110.4100 harjoitustyö, kevät 2012 Kurssiassistentit T-110.4100@tkk.fi Tietotekniikan laitos Perustieteiden korkeakoulu Aalto-yliopisto 31.1.2012 Yleistä Kurssin osasuoritteita ovat kaksi osatenttiä,

Lisätiedot

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000 HELIA 1 (15) Luento 2.7 Toiminnallisuutta tietokantaan... 2 Deklaratiivinen eheysvalvonta... 2 Proseduraalinen eheysvalvonta... 3 Eheysvalvonnan suunnittelusta... 4 Sääntöjen määrittely... 4 Toteutusvaihtoehdot...

Lisätiedot

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

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun

Lisätiedot

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIEDONHALLINNAN PERUSTEET - SYKSY 2013 TIEDONHALLINNAN PERUSTEET - SYKSY 2013 Kurssikoodi: Saapumisryhmä: Luento 4 XX00AA79-3013 TU12S2 Pasi Ranne 11.9.2013 11/9/13 Helsinki Metropolia University of Applied Sciences 1 Relaatiotietokannan suunnitteluprosessin

Lisätiedot

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2 Subversion-ohje Linux Traffic Control-käyttöliittymä Ryhmä paketti2 Helsinki 1.11.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti

Lisätiedot

SQL - STRUCTURED QUERY LANGUAGE

SQL - STRUCTURED QUERY LANGUAGE SQL Peruskomentoja SQL - STRUCTURED QUERY LANGUAGE SQL on tietokantojen käsittelyyn kehitetty kieli Esimerkkejä kielellä hoidettavistaa toiminnoista: Tietokannan rakenteen määrittely ja muuttaminen Kyselyt

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI OSIO 01 Peruskäsitteitä Kurssin tavoite: antaa osallistujille valmiudet ymmärtää tietokantojen periaatteet ymmärtää tietokantojen suunnittelunäkökohtia osallistua tietokantojen

Lisätiedot

27.11.09. Napsauta Kurssin viikkonäkymä- näkymässä oikeassa yläreunassa sijaitsevaa Muokkaustila päälle -painiketta.

27.11.09. Napsauta Kurssin viikkonäkymä- näkymässä oikeassa yläreunassa sijaitsevaa Muokkaustila päälle -painiketta. 1 (14) MOBILOGI-ET Tässä dokumentissa on ohjeita Moodlen Logi-työkalun mobiililaajennuksen (Mobilogi) käyttöön. Dokumentin pohjana on käytetty HAMK:n Teemu Tuurin kirjoittamaa ohjeistusta ja sen sisältö

Lisätiedot

SALITE.fi -Verkon pääkäyttäjän ohje

SALITE.fi -Verkon pääkäyttäjän ohje SALITE.fi -Verkon pääkäyttäjän ohje Sisältö 1 Verkon pääkäyttäjä (Network Admin)...3 2 Verkonhallinta...3 2.1 Navigointi verkonhallintaan...3 2.2 Sivustot...3 2.1 Sivustojen toiminnot...4 2.3 Sivuston

Lisätiedot

Käsikirjan paperiversiota ei enää ylläpidetä ohjeen päivämäärän jälkeen. Viimeisimmät versiot ohjeista löydät ohjelman Help-ruudulta.

Käsikirjan paperiversiota ei enää ylläpidetä ohjeen päivämäärän jälkeen. Viimeisimmät versiot ohjeista löydät ohjelman Help-ruudulta. 2 Käsikirjan paperiversiota ei enää ylläpidetä ohjeen päivämäärän jälkeen. Viimeisimmät versiot ohjeista löydät ohjelman Help-ruudulta. Sisällys 1 Yleistä... 3 1.1 Kirjanpitolain uudistus 2016... 3 Liitetietotosite...

Lisätiedot

1. ASIAKKAAN OHJEET... 2. 1.1 Varauksen tekeminen... 2. 1.2 Käyttäjätunnuksen luominen... 4. 1.3 Varauksen peruminen... 4

1. ASIAKKAAN OHJEET... 2. 1.1 Varauksen tekeminen... 2. 1.2 Käyttäjätunnuksen luominen... 4. 1.3 Varauksen peruminen... 4 1. ASIAKKAAN OHJEET... 2 1.1 Varauksen tekeminen... 2 1.2 Käyttäjätunnuksen luominen... 4 1.3 Varauksen peruminen... 4 1.4 Omien tietojen muokkaaminen... 5 1.5 Salasanan muuttaminen... 5 2. TYÖNTEKIJÄN

Lisätiedot

Tehtävän lisääminen ja tärkeimmät asetukset

Tehtävän lisääminen ja tärkeimmät asetukset Tehtävä Moodlen Tehtävä-aktiviteetti on tarkoitettu erilaisten tehtävien antamiseen verkossa. Tehtävä-aktiviteettia ei ole tarkoitettu ainoastaan tehtävien palautukseen, kuten moni sen sellaiseksi mieltää,

Lisätiedot

INTINU13A6 Java sovellukset

INTINU13A6 Java sovellukset Johdanto Kurssin tavoitteena oli luoda tietokantaa käyttävä websovellus Java EE ohjelmointikielellä, sekä hyödyntää muun muassa servlettejä sekä JSP sivuja ja muita tekniikoita monipuolisesti. Webserverinä

Lisätiedot

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

EeNet käyttäjähallinta ohjeet

EeNet käyttäjähallinta ohjeet EeNet käyttäjähallinta ohjeet Käyttäjähallinnassa lisätään EeNettiin joukkueita, käyttäjiä ja testipaikkoja. Käyttäjähallinnan toiminnot ovat: 1. Joukkueiden lisääminen (joukkueet) 2. Valmentajien yms.

Lisätiedot

Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle

Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle 2 Sisällys 1 Palvelunhallinta... 3 1.1 Käyttäjäryhmän luominen... 3 2 Tehtävienhallinta- perustiedot... 4 2.1 Yhtiön perustiedot... 4 2.2 Tehtävä-/

Lisätiedot

DXL Library ja DXL-kielen olemus. Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/

DXL Library ja DXL-kielen olemus. Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/ DXL Library ja DXL-kielen olemus Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/ DOORS extension Language DXL on DOORSin laajennuskieli, jolla voidaan kehittää lisätoiminnallisuutta.

Lisätiedot

SATAKUNNAN AMMATTIKORKEAKOULU

SATAKUNNAN AMMATTIKORKEAKOULU SAMK SoleOps uusintatenttijärjestelmä 1(8) Opettajan rooli Tässä ohjeessa on selostettu SoleOPSin uusintatenttijärjestelmässä opettajan tehtäviin kuuluvat toiminnot. Näitä ovat: 1. uusintatenttipäivämäärien

Lisätiedot

Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti

Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu JÄRJESTELMÄN KÄYTTÖOHJE LiKe Liiketoiminnan kehityksen tukiprojekti Versio: 1.1 Tila: hyväksytty Päivämäärä: 13.2.2001

Lisätiedot

Testidatan generointi

Testidatan generointi Testidatan generointi Anu Ahonen Kevät 2008 Tämä työ on tehty Creative Commons -lisenssin alla Työn tarkasti 9.4.2008 Jouni Huotari (JAMK/IT) 1 SISÄLTÖ 1 TYÖN LÄHTÖKOHDAT JA TOTEUTUS...2 2 TESTIDATAN GENEROINTI

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2 TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa

Lisätiedot

Suvi Junes Tampereen yliopisto / tietohallinto 2013

Suvi Junes Tampereen yliopisto / tietohallinto 2013 Keskustelualue Keskustelualue soveltuu eriaikaisen viestinnän välineeksi. Keskustelualueelle voidaan lähettää viestejä toisten luettavaksi, ja sitä voidaan käyttää alueena myös ryhmätöiden tekemiseen,

Lisätiedot

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun. StorageIT 2006 varmuuskopiointiohjelman asennusohje. Hyvä asiakkaamme! Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun. Ennen asennuksen aloittamista Varmista, että

Lisätiedot

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (11) Access 1 ACCESS...2 Yleistä...2 Access-tietokanta...3 Perusobjektit...3 Taulu...5 Kysely...7 Lomake...9 Raportti...10 Makro...11 Moduli...11 HELIA 2 (11) ACCESS Yleistä Relaatiotietokantatyyppinen

Lisätiedot

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

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2017 Kurssikoodi: Saapumisryhmä: Luento 2 TX00CN57-3001 TXQ16ICT, TXQ16S1 ja TXQ16PROS Pasi Ranne 28.8.2017 27/8/17 Helsinki Metropolia University of Applied Sciences 1 Oppitunnin

Lisätiedot

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013 Tehtävä 2.2. Tehtävä-työkalun avulla opiskelijat voivat palauttaa tehtäviä Moodleen opettajan arvioitaviksi. Palautettu tehtävä näkyy ainoastaan opettajalle, ei toisille opiskelijoille. Tehtävä-työkalun

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI SQL - KIELI TIETOJEN MUOKKAUS MARKKU SUNI Tarkastellaan tauluissa olevien tietojen muokkausta muokkauskäskyjä: INSERT UPDATE DELETE Kysymys kuuluu: Voiko tietoja muokata

Lisätiedot

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9. Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 DDL... 5 Tietokantaobjektien määrittely... 5 SQL:n tietotyypit... 6 Eheyssääntöjen määrittely... 9 Indeksin määrittely... 11 Syntaksikuvaukset...

Lisätiedot

Visma Business AddOn Tositteiden tuonti. Käsikirja

Visma Business AddOn Tositteiden tuonti. Käsikirja Visma Business AddOn Tositteiden tuonti Käsikirja Oppaan päiväys: 10.2.2012. Asiakaspalvelu: Helpdesk: www.visma.fi Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman

Lisätiedot

SQL Buddy JAMK Labranet Wiki

SQL Buddy JAMK Labranet Wiki Page 1 of 9 SQL Buddy JAMK Labranet Wiki Sisällysluettelo Yleistä SQL Buddy:sta kotisivu :http://sqlbuddy.com/ SQL Buddy on kevyt hallintatyökalu MySQL-tietokannalle. Järjestelmävaatimukset Serverin vaatimukset

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

T harjoitustehtävät, syksy 2011

T harjoitustehtävät, syksy 2011 T-110.4100 harjoitustehtävät, syksy 2011 Kurssiassistentit Tietotekniikan laitos Perustieteiden korkeakoulu Aalto-yliopisto T-110.4100@tkk.fi Yleistä Kurssin osasuoritteita ovat kaksi osatenttiä ja harjoitustehtävät

Lisätiedot

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta. Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

Uuden työ- tai mittavälineen luominen tietokantaan

Uuden työ- tai mittavälineen luominen tietokantaan Sivu:1(12) Työ- ja mittaväline-tietokanta löytyy serveriltä APPL14.DE.ABB.COM/SRV/ABB Tarvitset read-oikeudet tietokannan tarkasteluun ja editor mainusers-oikeudet tietokannan muokkaukseen. Jos tarkoituksenasi

Lisätiedot

Käyttöohje. Visy Access Net UPM

Käyttöohje. Visy Access Net UPM Käyttöohje Visy Access Net UPM 1. Johdanto Visy Access Net on WWW-pohjainen käyttöliittymä, jolla UPM:n toimittajien pitää luvittaa omat ajoneuvonsa UPM:n tehtaille, jotta kulku onnistuu jatkossakin. Järjestelmä

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

Lisätiedot

Access-kyselyt. Luetteloinnin kehittämispäivä 13.12.2012 Mia Kujala

Access-kyselyt. Luetteloinnin kehittämispäivä 13.12.2012 Mia Kujala Access-kyselyt Luetteloinnin kehittämispäivä 13.12.2012 Mia Kujala Ennen kuin aloitat MS Access on asennettu Oracle ODBC-ajuri on asennettu C:\Voyager\Access Reports\Reports.mdb > Voyager-taulut on linkitetty

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

Versiohallinta ja Subversion. 26.9.2007 Maunu Tuomainen mttuomai@jyu.fi

Versiohallinta ja Subversion. 26.9.2007 Maunu Tuomainen mttuomai@jyu.fi Versiohallinta ja Subversion 26.9.2007 Maunu Tuomainen mttuomai@jyu.fi Versiohallinta yleisesti Ongelma: lähdekoodin ja muun materiaalin säilyttäminen siten, että: se on kaikkien saatavilla tuorein versio

Lisätiedot

Suvi Junes/Pauliina Munter Tampereen yliopisto / tietohallinto 2014

Suvi Junes/Pauliina Munter Tampereen yliopisto / tietohallinto 2014 Keskustelualue Keskustelualue soveltuu eriaikaisen viestinnän välineeksi. Keskustelualueelle voidaan lähettää viestejä toisten luettavaksi, ja sitä voidaan käyttää alueena myös ryhmätöiden tekemiseen,

Lisätiedot

OpenOffice.org Base 3.1.0

OpenOffice.org Base 3.1.0 OpenOffice.org Base 3.1.0 Sisällysluettelo 1 Tietokannan luominen...1 2 Taulukon eli taulun luominen...3 3 Kysely...9 4 Raportti...14 1 Tietokannan luominen Tietokanta on kokoelma tietoja, joilla on yhteys

Lisätiedot

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014 Työpaja Työpaja on vertaisarviointiin soveltuva työkalu. Työpaja mahdollistaa töiden palautuksen ja niiden jakelun opiskelijoiden arvioitavaksi sekä arvioinnin antamisen. Laita Muokkaustila päälle ja lisää

Lisätiedot

Opas administraattori-tason käyttäjille. MANAGERIX -ohjelman esittely... 2 Kirjautuminen... 2

Opas administraattori-tason käyttäjille. MANAGERIX -ohjelman esittely... 2 Kirjautuminen... 2 MANAGERIX Opas administraattori-tason käyttäjille SISÄLLYS MANAGERIX -ohjelman esittely... 2 Kirjautuminen... 2 Käyttöliittymä... 2 1 ORGANISAATIO Organisaation tietojen tarkastelu ja muokkaaminen4 Yhteenveto

Lisätiedot

Hockeyliitto - Torneopal

Hockeyliitto - Torneopal Hockeyliitto - Torneopal 2018_2019 Hockeyliiton sähköinen tulospalvelujärjestelmä löytyy osoitteesta www.hockey.torneopal.fi tai sisäkaudella www.indoorhockey.torneopal.fi Sivulta löydät kaikkien sarjojen

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI Tavoite: Suunnitella käyttäjien tarvitsemat turvallisuusmekanismit ja säännöt. Toisin sanoen: tehdä tietokannasta turvallinen ja luotettava. Muistutus: Tietokanta

Lisätiedot

Jäsenrekisterin käytön perusteet

Jäsenrekisterin käytön perusteet Jäsenrekisterin käytön perusteet Peruskäyttö Uudet jäsenet lisätään kotisivujen kautta Yksittäisen jäsenen etsiminen Jäsenen eropäivän merkintä Yhdistys ei poista jäsentä keskitetysti liitosta Raportit

Lisätiedot

ARVI-järjestelmän ohje arvioinnin syöttäjälle 13.4. 2015

ARVI-järjestelmän ohje arvioinnin syöttäjälle 13.4. 2015 ARVI-järjestelmän ohje arvioinnin syöttäjälle 13.4. 2015 Sisältö ARVI-menettelyn perusteet... 1 Arvioinnin syöttäminen... 2 Arvion lähettäminen TE-toimistoon... 5 Sovelluksen sulkeminen... 6 Virhetilanteiden

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

Käyttöohje Suomen Pankin DCS2-järjestelmään rekisteröityminen

Käyttöohje Suomen Pankin DCS2-järjestelmään rekisteröityminen 1 (13) Käyttöohje Suomen Pankin DCS2-järjestelmään rekisteröityminen 2 (13) Sisällysluettelo 1 Palveluun rekisteröityminen... 3 1.1 Henkilötiedot...4 1.2 Suomen Pankin tiedonkeruut... 5 1.2.1 Alustava

Lisätiedot

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Asennusohje Sahara-ryhmä Helsinki 24.8.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Sanna Keskioja Sampo

Lisätiedot

Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi

Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi Esimerkkinä Excel-taulukkona ladattavat Helsingin pysäköintilippuautomaatit Viimeksi muokattu 27. huhtikuuta

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 29.3.2016 CSE-A1200 Tietokannat 29.3.2016 1 / 40 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat

Lisätiedot

Tietokannan luominen:

Tietokannan luominen: Moodle 2 Tietokanta: Tietokanta on työkalu, jolla opettaja ja opiskelijat voivat julkaista tiedostoja, tekstejä, kuvia, linkkejä alueella. Opettaja määrittelee lomakkeen muotoon kentät, joiden kautta opiskelijat,

Lisätiedot

Hockeyliitto -Torneopal

Hockeyliitto -Torneopal Päivitetty 26.5.2017 Hockeyliitto -Torneopal Hockeyliiton sähköinen tulospalvelujärjestelmä löytyy osoitteesta www.hockey.torneopal.fi Sivulta löydät kaikkien sarjojen sarjataulukot, otteluohjelmat ja

Lisätiedot

PELAAJAPROFIILI Mobiilisovellus

PELAAJAPROFIILI Mobiilisovellus PELAAJAPROFIILI Mobiilisovellus Pelaajaprofiili netissä Pelaajaprofiilin www-palvelu on osoitteessa http://www.pelaajaprofiili.fi. Rekisteröidy tai hanki tunnukset ennen mobiilisovelluksen käyttöä. Pelaajaprofiilin

Lisätiedot

Keskustelualue. Tampereen yliopisto/ tietohallinto 2017 Suvi Junes/Pauliina Munter

Keskustelualue. Tampereen yliopisto/ tietohallinto 2017 Suvi Junes/Pauliina Munter Keskustelualue Keskustelualue soveltuu eriaikaisen viestinnän välineeksi. Keskustelualueelle voidaan lähettää viestejä toisten luettavaksi, ja sitä voidaan käyttää alueena myös ryhmätöiden tekemiseen,

Lisätiedot

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille KServer Etäohjaus 1 (5) KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille Palvelimen toteutuksen ollessa versio 1.0, spesifikaation versio 1.0.0. 2009, Riku Eskelinen/ KServer Software Development

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

Lisätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

Hakemistojen sisällöt säilötään linkitetyille listalle.

Hakemistojen sisällöt säilötään linkitetyille listalle. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ

Lisätiedot

KiMeWebin käyttöohjeet

KiMeWebin käyttöohjeet KiMeWebin käyttöohjeet 5.3.2017 Miten saan käyttäjätunnuksen? Jos haluat käyttäjätunnuksen (eli oikeuden muokata sivuja) laita viesti webvelho@kime.fi ja kerro viestissä nimi pesti lippukunnassa (esim.

Lisätiedot

Hops-ohjaajan ohje Opiskelijan hopsit.

Hops-ohjaajan ohje Opiskelijan hopsit. Hops-ohjaajan ohje Tässä ohjeessa kuvataan kaksi erilaista tapaa hakea tietyn opiskelijan lähettämä hops. Ensin ohjeistetaan miten toimitaan, jos hopsin ryhmätyökalu on käytössä, eli ohjaajalle on luotu

Lisätiedot

Opinajan käytön aloittaminen koulussa/oppilaitoksessa

Opinajan käytön aloittaminen koulussa/oppilaitoksessa Opinajan käytön aloittaminen koulussa/oppilaitoksessa Yleistä Opinaika löytyy osoitteesta: http://www.opinaika.fi Jokainen oppilas ja opettaja tarvitsevat oman käyttäjätunnuksen ja siihen liittyvän salasanan

Lisätiedot

Tuomarit. 1 Järjestelmään kirjautuminen

Tuomarit. 1 Järjestelmään kirjautuminen Tuomarit Taso järjestelmässä hoidetaan Suomen Palloliiton valtakunnallisten sarjojen, sekä järjestelmän käyttöönottaneiden piirien erotuomariasettelut ja tulospalvelu (mm. sähköiset pöytäkirjat). 1 Järjestelmään

Lisätiedot

Ensimmäisessä vaiheessa ladataan KGU tietokanta Hallitse tietokantoja toiminnon avulla.

Ensimmäisessä vaiheessa ladataan KGU tietokanta Hallitse tietokantoja toiminnon avulla. 1 Odoo ohjelman demokäyttöön riittää, että asentaa ohjelmiston, ja tietokannan. Jos päättää ottaa ohjelmiston tuotannolliseen käyttöön, on päivitettävä myös XML raporttipohjat, sekä syötettävä yrityksen

Lisätiedot

Ohjeet. Ohjeita on kahdessa paikassa. Admin-näytön oikeassa ylänurkasta. Seura- sivuilta kohdasta Dokumentit

Ohjeet. Ohjeita on kahdessa paikassa. Admin-näytön oikeassa ylänurkasta. Seura- sivuilta kohdasta Dokumentit Ohjeet Ohjeita on kahdessa paikassa Admin-näytön oikeassa ylänurkasta Seura- sivuilta kohdasta Dokumentit Jps.fi -periaatteita 1. Ensin luodaan joukkue (pääkäyttäjä) 1. joukkueen luominen synnyttää Ryhmän

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,

Lisätiedot

Palautuskansio moduuli, ja sen vuorovaikutukset tehtävien annossa!

Palautuskansio moduuli, ja sen vuorovaikutukset tehtävien annossa! Palautuskansio moduuli, ja sen vuorovaikutukset tehtävien annossa! - Elikkä tässä ohjeessa näet kuinka voit tehdä peda.net palveluun koti/etätehtäviä tai vaikka kokeitten tekoa, tapoja on rajattomasti.

Lisätiedot

http://www.wordle.net Opiskelijan ohje Tutkintopalvelu 1.9.2013

http://www.wordle.net Opiskelijan ohje Tutkintopalvelu 1.9.2013 http://www.wordle.net Opiskelijan ohje 1.9.2013 Opiskelijan ohje 2 (9) n käyttöohje tutkinnon suorittajalle Ohjeen sisältö TIEKEn tutkintoja hallinnoidaan ssa, jonka osoite on /tupa. Jokainen TIEKEn tutkintoa

Lisätiedot

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

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina Kirjasto Kevät 2001 Auvinen Annemari Niemi Anu Harjoitustyö 7.4.2001 Sisällysluettelo 1. Yleiskuvaus... 3 2. Vaatimukset... 3 2.1. Toiminnalliset... 3 2.1.1. Sisäänkirjautuminen... 3 2.1.2. Nimikkeiden

Lisätiedot

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014 Tietokanta Tietokanta on työkalu, jolla opettaja ja opiskelijat voivat julkaista tiedostoja, tekstejä, kuvia ja linkkejä alueella. Opettaja määrittelee lomakkeen muotoon kentät, joiden kautta opiskelijat

Lisätiedot