Tässä ohjeessa kuvataan tietokantojen käyttöä Helsingin yliopiston tietojenkäsittelytieteen laitoksen Tietokantasovellusten harjoitustyö- kurssin yhteydessä. |
Tietokantapalvelimena käytetään lähinnä konetta bodbacka.cs.helsinki.fi. Tällä koneella on käytettävissä Oracle 9.2 -tietokanta. Vaihtoehtoisen PostgreSQL- tai MySQL kannan voi pystyttää koneeseen db.cs.helsinki.fi.Sovelluspalvelin servlettien ajamista varten on pystytettävissä koneeseen db.cs.helsinki.fi.
Kummankin laitteen käyttö edellyttää tktl:n Linux-tunnusta.
Oracle-käyttäjätunnukset
Tietokannan käyttöä varten tarvitaan oma erillinen tietokantakäyttäjätunnus. Käyttätunnuksen kantaan saa pyytämällä sitä harjoitustyöryhmän ohjaajalta.
Oracle SQL suorakäyttö
Relaatiotietokantaa operoidaan SQL-kielisillä komennoilla tai komentoskripteillä. Oraclen kohdalla komentoskripti voi olla myös PL/SQL-kielinen. Komennoilla mm. perustetaan taulut ja syötetään niihin testiaineistoa.
Asetukset
SQL-komentojen suorittaminen on tällä hetkellä mahdollista vain palvelinkoneessa bodbacka.cs.helsinki.fi. Tarjolla on rivipohjainen käyttöliittymä (sqlplus) sekä graafinen käyttöliittymä (oemapp worksheet) Kummankin käyttäminen edellyttää muutamia polku- ja ympäristömuuttuja-asetuksia, jotka saadaan aikaan seuraavilla komennoilla (sijoita nämä vaikkapa koneella bodbacka olevaan .bashrc tiedostoosi, niin ei tarvitse ajaa erikseen)
export ORACLE_HOME=/u01/app/oracle/9.2.0 export CLASSPATH=$ORACLE_HOME/JRE/lib export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export PATH=$PATH:$ORACLE_HOME/bin export TWO_TASK=test export NLS_LANG=finnish_finland.we8iso8859p1Laita ylläolevat vaikka bodbacka koneen .bashrc tiedostoosi, niin saat ainakin käynnistettyä SQL-tulkin (sqlplus). Tulkki käynnistetään komennolla sqlplus, jonka jälkeen järjestelmä kysyy tietokantakäyttäjätunnusta ja salasanaa.Rivipohjainen käyttöliittymä
Komennolla sqlplus käynnistyy vuorovaikutteinen sqlplus-komentotulkki. Seuraavassa on esitelty tärkeimpiä komentotulkiin liittyviä toimintoja
- Tulkista pääset ulos antamalla komennon exit.
- Komennolla edit voit avata oletuseditorisi (ympäristömuuttuja EDITOR määrittelee minkä) käsittelemään komentopuskuria. Editorin avaaminen ei onnistu, jos komentopuskuri on tyhjä, joten kirjoita komentoriville jotain pohjaksi (vaikka select). Editoitava komento lopetetaan omalla rivillään olevalla kauttaviivalla. Kun poistut editorista normaalilopetuksen kautta (esim. micro emacsissa esc-z) komentopuskuri päivittyy.
- Komentopuskurissa voi olla vain yksi komento kerrallaan.
- Komentopuskurissa olevan komennon suoritat komennolla run (tai r).
- Saat listattua komentopuskurin sisällön komennolla list (tai l).
- Sqlplus tarjoaa myös muokkauskomentoja komentopuskurin käsittelyyn. Oletetaan, että haluaisit muuttaa komentopuskurissa rivillä 3 olevan merkkijonon AUTO merkkijonoksi CAR. Tämä hoituu seuraavasti:
SQL> list 3 SQL> saat näkyviin AUTO-rivin 3 SQL> c/AUTO/CAR/ SQL> saat näkyviin CAR-rivin 3 SQL>Ensimmäinen käsky valitsee kohteeksi rivin 3. Saat näkysiin valitsemasi rivin. Seuraava käsky korvaa merkkijonon ja kuittaa sen näyttämällä muuttuneen rivin. Jos kirjoitat komennon suoraan komentopuskuriin saat sen suoritettua kun annat loppuun puolipisteen tai omalla rivillään kauttaviivan.Voit myös kirjoittaa SQL-komentosarjoja tavalliseen tekstitiedostoon ja suorittaa tiedoston komentotulkin avulla komennolla start tiedostonimi tai @tiedostonimi. Komentosarjassa kunkin komennon on päätyttävä puolipisteeseen tai omalla rivillä olevaan kauttaviivaan, esimerkiksi seuraavasti:
insert into taulu values(1,2); insert into taulu values(2,3); commit;taiinsert into taulu values(1,2) / insert into taulu values(2,3) / commit /Tietokannan ylläpito-operaatioiden tulokset päätyvät lopullisesti kantaan vasta kun olet suorittanut commit-operaation.Graafinen käyttöliittymä
Käynnistyskomento oemapp worksheet tuo esiin ikkunan, jonne annat käyttäjätunnuksesi ja salasanasi sekä tietokantainstanssin nimen (test). Aukeavassa ikkunassa voit kirjoittaa sql-komentoja yläosaan ja tulokset näkyvät alaosassa. voit myös suorittaa valmiiksi tiedostoon kirjoittamiasi komentosarjoja. Ohjeita graafisen ympäristön käyttöön löytyy ohjelman help-toiminnosta.Oracle-kannan servlet-käyttö
Servlettejä voi ajaa vain koneessa db.cs.helsinki.fi (tällä hetkellä tämä on eri kone kuin bodbacka). Tietokantayhteyden luomiseen tarvittava Oracle-thin ajuri löytyy tiedostosta /opt/jdbc/oracle/classes12.zip. Kytke tämä CLASSPATH:iin, esimerkiksi jserv-selvlettiympäristön ythteydessä lisäämällä tiedostoon <HOME>/jserv/environment rivi
export CLASSPATH=/opt/jdbc/oracle/classes12.zip:$CLASSPATHOhjelmassa tarvittava ajuriluokan nimi on oracle.jdbc.OracleDriver. Tietokantayhteyteen tarvittava yhteystunnus on jdbc:oracle:thin:@bodbacka.cs.helsinki.fi:1521:test.Erillisessä servlet-ohjeessa kerrotaan servlettien toteutusperiaatteista.
Oracle manuaaleja
Bodbacka-ympäristön manuaaliasennus on vielä vaiheessa (vaatinee romput). Seuraavassa tärkeimmät manuaalit pdf-muodossa (nämä ovat isoja tiedostoja 2-10M):
Asetukset
PostgreSQL-kannan voi pystyttää koneesta db.cs.helsinki.fi löytyvillä skripteillä:
PostgreSQL starttiskripti nostaa kannan toimintaan vain rajatuksi aikaa (10h). Kun työ jätetään tarkastukseen on hakemistossa /usr/local/bin olevasta skriptistä syytä tehdä paikallinen kopio (eri nimellä) ja editoida sitä (time asetus) niin, että kanta pysyy pystyssä ohjaajan kanssa sovitun ajan sekä suorittaa käynnistys tällä muutetulla skriptillä.
- kannan perustus skriptillä wanna-postgres
- postgres ympäristön asetus setup postgres kun kanta on ensin perustettu ja halutaan käyttää komentotulkkia psql.
- kannan käynnistys skriptillä start-postgres
- kannan alasasajo skriptillä stop-postgres
PostgreSQL -kannan suorakäyttö
Komentotulkki pgsql on käytettävissä kun on ensin käynnistänyt kannan komennolla start-postgres ja tehnyt tarvittavat asetukset komennolla setup postgres.
PostgreSQL-kannan servlet-käyttö
Servlettejä voi ajaa vain koneessa db.cs.helsinki.fi . Tietokantayhteyden luomiseen tarvittava PostgreSQL ajuri löytyy tiedostosta /opt/jdbc/jdbc7.0-1.2.jar. Kytke tämä CLASSPATH:iin, esimerkiksi jserv-ympäristössä lisäämällä tiedostoon ../jserv/environment riviexport CLASSPATH=/opt/jdbc/jdbc7.0-1.2.jar:$CLASSPATHOhjelmassa tarvittava ajuriluokan nimi on org.postgresql.Driver. Tietokantayhteyteen tarvittava yhteystunnus on jdbc:postgresql://localhost:portnumber/username Tässä portnumber on wanna-postgres komennon arpoma porttinumero.Kanta on käytettävissä servlettien kautta vain mikäli se on ensin erikseen käynnistetty.
PostgreSQL manuaaleja
- PostgreSQL Administrator's Manual
- PostgreSQL User's Manual
- PostgreSQL Programmer's Manual
- PostgreSQL Tutorial
Harri Laine 27.1.2002