PostgreSQL und PostGIS: Anlage einer Beispieldatenbank


Inhalte der Beispieldatenbank Bearbeiten

Die Darstellung der Funktionen lässt sich am Besten in Form eines einfachen Beispiels erläutern. Der Buchungsverkehr von zwei persönlichen Bankkonten (Girokonto und Sparkonto) soll nachvollzogen werden. Maßgeblich sind dabei zwei Tabellen:

  1. bankkonto - mit den Grunddaten, wie Kontonummer, Inhabername, Bankinstitut, Bankleitzahl
  2. buchungen - mit dem Buchungsgeschehen (Ein- und Auszahlungen) auf den jeweiligen Konten.

Zu beachten ist die grundsätzliche Pflicht, Bezeichnungen von Schema, Tabellen, Tabellenspalten etc. klein zu schreiben.

Anlage des Schemas Bearbeiten

Vorgaben zu Form und Beziehung der Daten werden durch die Anlage eines Schemas vorgegeben. Es wird ein Schema mit dem Namen bankkonto erzeugt, welches dem Nutzer Martin gehört.

  SQL-Quelltext:

-- Schema Bankkonto erzeugen
CREATE SCHEMA bankkonto
  AUTHORIZATION martin;

Anlage einer Tabelle Bearbeiten

  SQL-Quelltext:

-- Tabelle bankkonto
CREATE TABLE bankkonto.bankkonto
(
  bkid serial NOT NULL,
  kontonummer int,
  inhaber_name character varying(255),
  bank_name character varying(255),
  bank_blz character varying(255)
)
WITH (
  OIDS=TRUE

Einfügen von Primär- und Fremdschlüsseln Bearbeiten

Zum Herstellen von Beziehungen zwischen einzelnen Tabellen werden Schlüsselfelder definiert, die in den verbundenen Tabellen in gleicher Form enthalten sind. Unterschieden werden dabei Primärschlüssel und Fremdschlüssel.

  SQL-Quelltext:

-- Primary-Key
ALTER TABLE bankkonto.bankkonto
  ADD CONSTRAINT bankkonto_pkey PRIMARY KEY (bkid);

-- Foreign-Key
ALTER TABLE bankkonto.bankkonto
  ADD CONSTRAINT "fkFL" FOREIGN KEY (id)
      REFERENCES bankkonto.buchungen (id) MATCH SIMPLE
      ON UPDATE RESTRICT ON DELETE CASCADE;

Einfügen einer weiteren Tabelle inkl. Schlüssel Bearbeiten

  SQL-Quelltext:

-- Tabelle Buchungen zu den Konten

CREATE TABLE bankkonto.buchungen
(
  bkid integer NOT NULL,
  buchung_dat NOT NULL,
  buchung_empfaenger character varying(250) NOT NULL,
  verwendungszweck character varying(100),
  bemerkungen text
)
WITH (
  OIDS=TRUE
);

-- Foreign-Key
ALTER TABLE bankkonto.buchungen
  ADD CONSTRAINT "fkOKID" FOREIGN KEY (bkid)
      REFERENCES bankkonto.bankkonto (bkid) MATCH SIMPLE
      ON UPDATE RESTRICT ON DELETE CASCADE;