Joukahainen > Ohjeita > Tietokantakopioiden käyttö

Joukahaisen tietokannan sisällöstä tehdään automaattisesti kopio joka yö. Uusin kopio löytyy aina tiedostosta joukahainen.pgdump ja vanhempia kopioita voi tutkia hakemistosta pgdumps. Vaikka tarkoitus onkin, että Joukahaista pystyy kaikessa normaalissa käytössä käyttämään www-liittymän kautta, koko tietokannan käsittelystä omalla koneella voi joissain tilanteissa olla hyötyä:

Julkisesti saatavilla olevat kopiot ovat käytettävissä kokonaisuudessaan samalla lisenssillä kuin Voikko (GPL:n versio 2 tai uudempi). Myös julkinen osa käyttäjien tiedoista (käyttäjätunnus, nimi ja yhteys muutostietoihin) tulee tämän tietokannan mukana. Sen sijaan esimerkiksi sähköpostiosoitteet, salasanat, käyttöoikeustiedot ja tiedot viimeisestä kirjautumisajankohdasta eivät kuulu näihin julkisiin tietoihin, ja niitä säilytetään muualla.

Kuinka päästä alkuun?

Tämän ohjeen tarkoitus ei ole toimia perinpohjaisena oppimateriaalina tiedonhallintajärjestelmien käyttöön. Seuraavassa on vain vihjeitä, kuinka päästä liikkeelle. Ensimmäisenä on asennettava tarvittava tietokantaohjelmisto. Joukahaisen käytössä on PostgreSQL versio 13, joten tarvitset tämän tai uudemman version. Kun ohjelmisto on asennettu, suorita seuraavat toimenpiteet:

  1. Siirry käyttäjäksi postgres ja anna komento psql template1
  2. Päädyt PostgreSQL-päätteeseen, jossa pitää suorittaa seuraavat komennot (korvaa käyttäjänimi aku koneellasi käyttämällä käyttäjätunnuksella):
    template1=# create role joukahainen;
    CREATE ROLE
    tempalte1=# create user aku;
    CREATE ROLE
    template1=# grant joukahainen to aku;
    GRANT ROLE
    template1=# create database joukahainen with template template0;
    CREATE DATABASE
    template1=# \q
    
  3. Edelleen käyttäjänä postgres, kopioi Joukahaisen sisältö juuri luomaasi tietokantaan komennolla pg_restore -d joukahainen /tmp/joukahainen.pgdump Tämä antaa liudan varoituksia, joissa sanotaan mm. ERROR: role "hatapitk" does not exist. Tämä johtuu siitä, että alkuperäisessä tietokannassa on sen varmuuskopiointiin käytetty käyttäjätunnusta "hatapitk" jota omassa PostgreSQL-asennuksessasi ei todennäköisesti ole. Nämä varoitukset ovat harmittomia.

Nyt tietokannan pitäisi olla käyttövalmis. Voit varmistaa asian antamalla omalla käyttäjätunnuksellasi (yllä "aku") komennon psql joukahainen. Tällöin toivottavasti päädyt PostgreSQL-päätteeseen. Siellä voit antaa esimerkiksi komennon select count(*) from word; jonka pitäisi tulostaa tietokannassa olevien sanatietueiden kokonaismäärä. Jos näin tapahtuu, on asennus valmis ja tietokanta käytettävissä hakuja (ja muutoksia) varten.

Myöhemmin tietokannan sisällön voi päivittää poistamalla vanhan sisällön ja tuomalla tuoreemman sen tilalle. Käyttäjänä postgres suorita:

template1=# drop database joukahainen;
DROP DATABASE
template1=# create database joukahainen with template template0;
CREATE DATABASE
template1=# \q

jonka jälkeen annetaan jälleen komento pg_restore -d joukahainen /tmp/joukahainen.pgdump.

Tärkeimmät taulut

word

Taulu word sisältää sanatietueet. Word-taulun oleellisimmat sarakkeet ovat seuraavat:

NimiTyyppiHuomioita
widintegerAvainkenttä, käytetään sanojen tunnistamiseen mm. URL-osoitteissa.
wordcharacter varyingVarsinainen sana
classintegerSanaluokka, viittaus tauluun wordclass(classid)

attribute

Taulu attribute sisältää tiedot Joukahaisen tuntemista sanoja kuvaavista attribuuteista (siis lipuista ja tekstikentistä). Attribute-taulun oleellisimmat sarakkeet ovat seuraavat:

NimiTyyppiHuomioita
aidintegerAvainkenttä, attribuutin tunniste.
descrcharacter varyingAttribuutin kuvaus
typeintegerAttribuutin tyyppi, viittaus tauluun attribute_type(type)

string_attribute_value

Taulu string_attribute_value sisältää tiedot sanojen tekstikenttien arvoista. Huomaa, että jos sanan jokin tekstikenttä on tyhjä, sitä vastaava tietue puuttuu tästä taulusta. Koska Joukahaisen tekstikentissä ei tunneta eroa puuttuvan arvon ja nollamittaisen merkkijonon välillä, tässä taulussa olevat tietueet sisältävät aina vähintään yhden merkin mittaisen merkkijonoarvon. Taulun oleellisimmat sarakkeet ovat seuraavat:

NimiTyyppiHuomioita
widintegerSanan tunniste, viittaus tauluun word(wid)
aidintegerTekstikentän tunniste, viittaus tauluun attribute(aid)
valuecharacter varyingTekstikentän arvo

flag_attribute_value

Taulu flag_attribute_value sisältää sanoille asetetut liput. Jos taulussa on sanan ja lipun yhdistävä tietue, lippu on asetettuna, muutoin se ei ole asetettuna. Taulun oleellisimmat sarakkeet ovat seuraavat:

NimiTyyppiHuomioita
widintegerSanan tunniste, viittaus tauluun word(wid)
aidintegerLipun tunniste, viittaus tauluun attribute(aid)

related_word

Taulu related_word sisältää sanojen kirjoitusasut. Oleellisimmat sarakkeet ovat seuraavat:

NimiTyyppiHuomioita
widintegerSanan tunniste, viittaus tauluun word(wid)
related_wordcharacter varyingKirjoitusasu

Käyttöesimerkkejä

Alla on esimerkkejä muutamista hyödyllisistä kyselyistä. Jos SQL-kieli ei ole hallussa, kannattaa tutustua PostgreSQL:n laadukkaaseen dokumentaatioon, erityisesti sen Tutorial-osuuteen.


Creative Commons License Tämän sivun sisältö on käytettävissä GPL 2.0 -lisenssillä, tai vaihtoehtoisesti Creative Commons Attribution-ShareAlike 2.5 -lisenssillä. Käyttö ja levitys on sallittu myös molempien mainittujen lisenssien uudempien versioiden ehdoilla.