PostgreSQL - Raision-seudun-koulutuskuntayhtyma/Tietokannat GitHub Wiki

Asennus

Suositeltu Windows-asennuspaketti löytyy osoitteesta https://www.postgresql.org/download/windows/

Asennushakemisto on C:\Program Files\PostgreSQL\10 ja datahakemisto on C:\Program Files\PostgreSQL\10\data

Versio 10.18 (viimeisin viralliseti Windows 10:lle tuettu) Postgres-käyttäjän salasana Q2werty Palvelin kuuntelee TCP-porttia 5432 Tietokantojen oletusaakkostus (locale) Finnish, Finland

Asetus Arvo
Installation Directory C:\Program Files\PostgreSQL\10
Server Installation Directory C:\Program Files\PostgreSQL\10
Data Directory C:\Program Files\PostgreSQL\10\data
Database Port 5432
Database Superuser postgres
Operating System Account NT AUTHORITY\NetworkService
Database Service postgresql-x64-10
Command Line Tools Installation Directory C:\Program Files\PostgreSQL\10
pgAdmin4 Installation Directory C:\Program Files\PostgreSQL\10\pgAdmin 4
Stack Builder Installation Directory C:\Program Files\PostgreSQL\10

Stackbuilder komponentit

Valitut komponentit:

  • Language Pack v. 2
  • PGBouncer
  • Slony-I
  • PostGIS v.3
  • Apache web server
  • Ajurit (Npgsql, JDBC, ODBC 64)
Asetus Arvo
Web-palvelun hakemisto C:\Program Files (x86)\edb\pem\httpd
Apache portti 8080
.NET-ajurien asennushakemisto C:\Program Files (x86)\PostgreSQL\Npgsql
JDBC-ajurin hakemisto C:\Program Files (x86)\PostgreSQL\pgJDBC
ODBC-ajurin hakemisto C:\Program Files\PostgreSQL\psqlODBC

PGAdmin 4

SQL Power Architect

JDBC-ajurin pitää käydä lisäämässä käsin, jotta yhteyden muodostus tietokantaan onnistuu. Lisäyksen jälkeen SQL Power Architect on käynnistettävä uudelleen.

v1

Avaa Connection-valikko (1) ja siirry Database Connection Manager-ikkunaan (2)

v2

Valitse JDBC Drivers (1)

v3

Valitse palvelinalustaksi PostgreSQL (1), lisää ajurin sisältämä JAR-paketti Add JAR- painikkeella (2). Mahdolliset vanhat ajurit näkyvät alakentässä (3).

v4

Valitaan dokumentaation mukaisesta hakemistosta käytössä olevaa Java-versiota vastaava ajuri (1).

PostgreSQL ja Django

PostgreSQL-tietokannan saa Django-projektiin käyttöön seuraavasti.

  1. Luo Django-projektillesi PostgreSQL-tietokantaan uusi käyttäjätunnus ja tietokanta. Esim. pgAdmin 4 -työkalulla se onnistuu seuraavasti:
    • Käyttäjän luominen löytyy kohdasta "Login/Group Roles" klikkaamalla oikealla hiiren napilla ja valitsemalla "Create" -> "Login/Group Role..."
      • Käyttäjätunnus tulee kohtaan "Name".
      • Huomaa laittaa luodulle käyttäjälle myös salasana välilehdellä "Definition".

Käyttäjän ja ryhmän ero

PostgreSQL-tietokannassa ryhmällä (group role) ei ole login-oikeutta, mutta käyttäjällä on (1). Muista lisätä tämä ominaisuus, kun luot sovellukselle käyttäjätunnusta. Jos sovelluksen pitää pystyä luomaan tietokantoja, siihen pitää erikseen antaa luontioikeus (2). Kun tarpeelliset tiedot on syötetty SQL-välilehdellä näkyvät seuraavat tiedot:

Käyttäjän luonti SQL-kielellä

  • Vastaavasti tietokannan luominen kohdasta "Databases" -> oikea klikki "Create" -> "Database..."
    • Omistajaksi ("Owner") juuri luotu käyttäjä

Kun luot tietokantaa varmista, että merkkien koodaus (1) ja aakkostus (2) toimivat oikealla tavalla. Oikea aakkostus vaihtaa myös merkkilajiksi oikean Windows-merkistön:

Merkistö ja aakkostus

Tietokannan luonnissa käytetyt asetukset näkyvät kokonaisuudessaan SQL-välilehdellä. Luontiskripti on kokonaisuudessaan seuraava (Linux-käyttäjä olisi varmaan luonut tämän ilman graafista käyttöliittymää):

-- Database: djangosovellus

-- DROP DATABASE djangosovellus;

CREATE DATABASE djangosovellus
    WITH 
    OWNER = sovelluksen_nimi
    ENCODING = 'UTF8'
    LC_COLLATE = 'Finnish_Finland.1252'
    LC_CTYPE = 'Finnish_Finland.1252'
    TABLESPACE = pg_default
    CONNECTION LIMIT = -1;
  1. Asenna psycopg2-ajuri Django-projektin virtuaaliympäristöön. HUOM! Varmista, että virtuaaliympäristö on aktiivinen eli (venv) näkyy komentokehotteen rivillä.
    pip install psycopg2
    
  2. Muokkaa Django-projektin settings.py-tiedoston DATABASES-kohtaa ja vaihda default-tietokannan asetuksiin seuraavat asiat:
     DATABASES = {
         'default': {
             'ENGINE': 'django.db.backends.postgresql',
             'HOST': 'localhost',
             'USER': 'käyttäjänimi',
             'PASSWORD': 'salasana',
             'NAME': 'tietokannan-nimi',
         }
     }
    
    missä käyttäjänimi, salasana ja tietokannan-nimi tilalle tulee tietysti oikeat arvot sen mukaan millaisen käyttäjän ja tietokannan loit kohdassa 1.

Numeeriset tietotyypit

Tietokantapalvelimia käytettäessä kannattaa muistaa, että ne tallentavat numeerista tietoa aina samassa amerikkalaisessa muodossa (desimaalierottimena piste, ei tuhaterotinta). Käyttöliittymänä toimiva sovellus tai tietokannan hallintajärjselmän ohjelmisto voi muuttaa desimaalierottimen tai tuhaterottimen kansalliseen muotoon, esim. Suomessa käytettyyn desimaalipilkkuun ja välilyöntiin tuhansien ja miljoonien välissä. Kaikki hallintasovellukset eivät tue muunnoksia lainkaan ja kannattaakin etukäteen tarkistaa, missä muodossa numeeristen arvojen pitää olla, että ne saadaan tallennettua tai tuotua tietokantaan. Seuraavassa kuvassa näkyyvät samat numeroarvot dBeaver- ja pgAdmin 4-ohjelman kautta.

Esitystapojen erot

Java-pohjainen dBeaver käyttää suurempaa desimaalien määrää kuin tietokanta, jonka seurauksena luvun 12.3 desimaaleihin on syntynyt virhe. Ohjelma sallii myös ,:n käyttämisen tuhaterottimena. pgAdmin 4 taas antaa virheilmoituksen, jos numerossa on mukana ,.

Numeeriset tietotyypit on kuvattu PostgreSQL:n dokumentaatiossa https://www.postgresql.org/docs/10/datatype-numeric.html.

:warning: Micrsoft SQL Server käyttää graafisessa käyttöliittymässä kansallisia erotinmerkkejä ja merkkipohjaisessa amerikkalaista tapaa. Query-ikkuna on myös merkkipohjainen työkalu. Samanalisia ominaisuuksia löytyy myös monitoimittajaympäristöön tarkoitetuista hallintasovelluksista.

VSC:n PostgreSQL-laajennus

Visual Studio Code -editoriin voi lisätä laajennuksen, jolla pääsee suoraan tietokantaan ilman hallintasovellusta:

Postgresql laajennus

Chris Kolkmanin tekemä laajennus mahdollistaa yhteyden muodostamisen ja tietokantaobjektien selailun. Myös Microsoftin tekemän laajennuksen voi asentaa, jolloin saadaan laajempi Intellisense-tuki.

Laajennuksen käyttö

Laajennus avataan kuvakkeesta (1). Yhteys uuteen tietokantaan muodostetaan lisäyspainikkeella (2). Sen painaminen käynnistää kysymyssarjan, jossa annetaan palvelimen, tietokannan ja kirjautujan tiedot. Tietokannan objekteja voi selata hakemistopuussa (3). Klikkaamalla tietokantaa hiiren 2-painikkeella pääsee luomaan uusia kyselyitä kyselyikkunaan (4). Ne suoritetaan hiiren 2-painikkeella kyselyikkunassa (5).

Kuvan tietokantapalvelimena on paikalliseen koneeseen asennettu PostgreSQL-palvelin. Kun Visual Studio Code keskustelee samassa tieto- tai virtuaalikoneessa sijaitsevan palvelimen kanssa, käytetään palvelimen nimenä loopback IP-osoitetta 127.0.0.1. Tätä osoitetta vastaava konenimi on localhost, jota voi myös käyttä.