Zum Inhalt springen
MultiBaseCS Hilfe
Esc
↑↓navigieren↵öffnen⌘Jvorschau
Auf dieser Seite

Datenbankschema

Aufbau der Listenabfrage, Tabellen, Verknüpfungen und Beispiele für eigene SQL-Filter (WHERE-Klausel).

Im Modul Liste können Sie Beobachtungen mit einem eigenen SQL-Filter auswählen. MultiBaseCS führt dafür intern eine vollständige SQL-Abfrage mit allen nötigen Verknüpfungen (JOINs) aus. Sie geben nur die Bedingung ein, also den Teil hinter WHERE.

Einige Feldnamen gibt es in mehreren verknüpften Tabellen, zum Beispiel Region in tblDaten und tblGeometrie. Schreiben Sie deshalb immer den Tabellennamen vor das Feld (tblDaten.Region). Fehlt er bei einem mehrdeutigen Feld, meldet die Datenbank einen Fehler.

Auf dieser Seite:

  1. Interne Abfrage der Liste
  2. Übersicht der wichtigsten Tabellen
  3. Tabellenbeziehungen
  4. Felder der wichtigsten Tabellen
  5. Beispiele für SQL-Filter

Alle Felder der Tabellen tblDaten, tblDatenZusatz, tblArten und tblGeometrie finden Sie unter Datenbankinformationen.

Interne Abfrage der Liste

Diese Abfrage führt MultiBaseCS aus (Spaltenliste gekürzt). Ihre Bedingung wird hinter WHERE eingesetzt. Die Tabellen ##T1_TEMPTABLE_DATEN und ##T2_TEMPTABLE_ORTE sind interne Hilfstabellen der laufenden Sitzung. Ihr Feld Flag_Filter kennzeichnet die Datensätze der aktuellen Filterauswahl.

SELECT TOP 100 /* ... Ergebnisspalten ... */
FROM tblDaten
  LEFT OUTER JOIN tblArten          ON tblDaten.ID_Art              = tblArten.ID_Art
  LEFT OUTER JOIN tblArtengruppen   ON tblArten.ID_Gruppe           = tblArtengruppen.ID_Gruppe
  LEFT OUTER JOIN tblArtenRLStand   ON tblArten.ID_Art              = tblArtenRLStand.ID_Art
  LEFT OUTER JOIN tblDatenZusatz    ON tblDaten.GUID_Daten          = tblDatenZusatz.GUID_Daten
  LEFT OUTER JOIN tblBeobachter     ON tblDaten.GUID_Beobachter     = tblBeobachter.GUID_Beobachter
  LEFT OUTER JOIN tblBeobachter tblBestimmer
                                    ON tblDaten.GUID_Bestimmer      = tblBestimmer.GUID_Beobachter
  LEFT OUTER JOIN tblGeometrie     ON tblDaten.GUID_Ort            = tblGeometrie.GUID_Ort
  LEFT OUTER JOIN tblHerkunft      ON tblDaten.GUID_Herkunft       = tblHerkunft.GUID_Herkunft
  LEFT OUTER JOIN tblAtlas         ON tblDaten.GUID_Atlas          = tblAtlas.GUID_Atlas
  LEFT OUTER JOIN tblSammlung      ON tblDaten.GUID_Sammlung       = tblSammlung.GUID_Sammlung
  LEFT OUTER JOIN tblEinheiten     ON tblDaten.ID_Einheit          = tblEinheiten.ID_Einheit
  LEFT OUTER JOIN tblVerhalten     ON tblDaten.ID_Verhalten        = tblVerhalten.ID_Verhalten
  LEFT OUTER JOIN tblReproduktion  ON tblDaten.ID_Reproduktion     = tblReproduktion.ID_Reproduktion
  LEFT OUTER JOIN tblNachweistyp   ON tblDaten.ID_Nachweistyp      = tblNachweistyp.ID_Nachweistyp
  LEFT OUTER JOIN tblQualitaet     ON tblDaten.ID_Qualitaet        = tblQualitaet.ID_Qualitaet
  LEFT OUTER JOIN tblHabitat       ON tblDaten.ID_Habitat          = tblHabitat.ID_Habitat
  LEFT OUTER JOIN tblKategorie     ON tblDaten.ID_Kategorie        = tblKategorie.ID_Kategorie
  LEFT OUTER JOIN tblDatenbankherkunft
                                    ON tblDaten.GUID_Datenbankherkunft = tblDatenbankherkunft.GUID_Datenbankherkunft
  LEFT OUTER JOIN tblAufnahme      ON tblDaten.GUID_Group          = tblAufnahme.GUID_Aufnahme
  LEFT OUTER JOIN tblRingnummerAlias
                                    ON tblDaten.GUID_Daten          = tblRingnummerAlias.GUID_Daten
                                   AND tblRingnummerAlias.ID_AliasTyp = 523
  LEFT OUTER JOIN ##T1_TEMPTABLE_DATEN
                                    ON tblDaten.GUID_Daten          = ##T1_TEMPTABLE_DATEN.GUID_Daten
  LEFT OUTER JOIN ##T2_TEMPTABLE_ORTE
                                    ON tblDaten.GUID_Ort            = ##T2_TEMPTABLE_ORTE.GUID_Ort
WHERE /* Hier wird Ihre Bedingung eingesetzt */

Die Abfrage ist in der Schreibweise von Microsoft SQL Server dargestellt. Unter Oracle und PostgreSQL ist der Aufbau gleich.

Übersicht der wichtigsten Tabellen

Tabelle Inhalt Wichtige Felder
tblDaten Beobachtungen (Haupttabelle) Datum, Jahr, Monat, Anzahl_Min, Anzahl_Max, MTB, Region, xWGS84, yWGS84, Ringnummer, Flag_Beringung
tblArten Artenliste mit Namen und Schutzstatus Art_Deutsch, Art_Wissenschaftlich, Art_Kuerzel, FFH, BNatSchG, Euring
tblArtengruppen Artengruppen Gruppe, Gruppe_wiss
tblBeobachter Beobachter, Beringer und Bearbeiter Beobachter, Vorname, Nachname, Institution, Code_Beringer
tblGeometrie Orte und Untersuchungsflächen Ortsbezeichnung, Nummer, Region, Biotop, xWGS84, yWGS84, MTB
tblNachweistyp Art des Nachweises Nachweistyp, Kuerzel
tblVerhalten Beobachtetes Verhalten Verhalten, Kuerzel
tblReproduktion Reproduktions- und Brutstatus Reproduktion, Kuerzel
tblQualitaet Qualitätsstufe Qualitaet
tblHabitat Habitattypen Habitat
tblHerkunft Datenherkunft Herkunft, Kuerzel, Erfassungstyp
tblAtlas Atlasprojekte und Kartierungen Atlas, Zeitraum, Herausgeber

Tabellenbeziehungen

Alle Verknüpfungen sind vom Typ LEFT OUTER JOIN und bereits in der internen Abfrage enthalten. Die Felder der verknüpften Tabellen verwenden Sie deshalb direkt in Ihrer Bedingung, ohne Unterabfrage.

Feld in tblDaten Verknüpfte Tabelle / Feld Verwendung in WHERE-Klausel
ID_Art tblArten.ID_Art Artname, Schutzstatus, Kürzel filtern
tblArten.ID_Gruppe tblArtengruppen.ID_Gruppe Nach Artengruppe filtern (z. B. „Vögel”)
GUID_Beobachter tblBeobachter.GUID_Beobachter Nach Melder, Institution filtern
GUID_Bestimmer tblBestimmer.GUID_Beobachter Nach Bestimmer filtern (Alias: tblBestimmer)
GUID_Ort tblGeometrie.GUID_Ort Nach Standortname, Region, MTB filtern
ID_Nachweistyp tblNachweistyp.ID_Nachweistyp Nach Nachweistyp-Text filtern
ID_Verhalten tblVerhalten.ID_Verhalten Nach Verhalten filtern
ID_Reproduktion tblReproduktion.ID_Reproduktion Nach Reproduktionsstatus filtern
ID_Qualitaet tblQualitaet.ID_Qualitaet Nach Qualitätsstufe filtern
ID_Habitat tblHabitat.ID_Habitat Nach Habitattyp filtern
ID_Einheit tblEinheiten.ID_Einheit Nach Zähleinheit filtern
ID_Kategorie tblKategorie.ID_Kategorie Nach Kategorie filtern (Tiere, Pflanzen …)
GUID_Herkunft tblHerkunft.GUID_Herkunft Nach Datenherkunft filtern
GUID_Atlas tblAtlas.GUID_Atlas Nach Atlasprojekt filtern
GUID_Sammlung tblSammlung.GUID_Sammlung Nach Sammlung filtern
GUID_Datenbankherkunft tblDatenbankherkunft.GUID_Datenbankherkunft Nach Datenbankherkunft filtern
GUID_Daten tblDatenZusatz.GUID_Daten Zusatzfelder (Geschlecht, Bearbeitungsstatus …)
GUID_Daten ##T1_TEMPTABLE_DATEN.GUID_Daten Flag_Filter (aktive Filterauswahl Daten)
GUID_Ort ##T2_TEMPTABLE_ORTE.GUID_Ort Flag_Filter (aktive Filterauswahl Orte)

Felder der wichtigsten Tabellen

tblDaten: Beobachtungsdaten (Haupttabelle)

Enthält alle Beobachtungs- und Funddatensätze. Geben Sie Felder immer mit Tabellenpräfix an, also zum Beispiel tblDaten.Datum. Bei Feldern mit dem Hinweis ⚠ ist das Pflicht, weil es sie auch in einer anderen verknüpften Tabelle gibt.

Feldname Datentyp Beschreibung
tblDaten.GUID_Daten PK uniqueidentifier Eindeutiger Datensatz-Bezeichner
tblDaten.ID_Daten int Numerische ID (intern)
tblDaten.Datum datetime Beobachtungsdatum
tblDaten.Jahr int Beobachtungsjahr (redundant zu Datum, für schnelle Filterung)
tblDaten.Monat int Beobachtungsmonat (1–12)
tblDaten.ID_Art FK → tblArten int Beobachtete Art ⚠ auch in tblArten
tblDaten.GUID_Beobachter FK → tblBeobachter uniqueidentifier Meldende Person
tblDaten.GUID_Ort FK → tblGeometrie uniqueidentifier Beobachtungsstandort
tblDaten.Anzahl varchar(255) Anzahl als Text (z. B. „ca. 5“, „>10“)
tblDaten.Anzahl_Min int Minimalanzahl (numerisch, für Vergleiche geeignet)
tblDaten.Anzahl_Max int Maximalanzahl (numerisch)
tblDaten.Ortsbezeichnung nvarchar(255) Freitextbezeichnung des Fundortes ⚠ auch in tblGeometrie
tblDaten.xWGS84 decimal Längengrad (WGS84) ⚠ auch in tblGeometrie
tblDaten.yWGS84 decimal Breitengrad (WGS84) ⚠ auch in tblGeometrie
tblDaten.MTB int Messtischblatt-Nummer ⚠ auch in tblGeometrie
tblDaten.MTBQ int Messtischblatt mit Quadrant (z. B. 45251 für MTB 4525, Quadrant 1) ⚠ auch in tblGeometrie
tblDaten.Raster varchar(10) Rastercode (z. B. TK-Raster) ⚠ auch in tblGeometrie
tblDaten.LAEACellCode int LAEA-Rasterzellcode (10 km) ⚠ auch in tblGeometrie
tblDaten.LAEARaster varchar(10) LAEA-Rasterkürzel ⚠ auch in tblGeometrie
tblDaten.LAEA1CellCode int LAEA-Rasterzellcode (1 km) ⚠ auch in tblGeometrie
tblDaten.Region nvarchar(255) Gebietsbezeichnung oder Verwaltungseinheit ⚠ auch in tblGeometrie
tblDaten.Biotop varchar(255) Biotopbeschreibung (Freitext) ⚠ auch in tblGeometrie
tblDaten.Bemerkung varchar(max) Freie Bemerkung zum Datensatz ⚠ auch in tblGeometrie
tblDaten.ID_Nachweistyp FK → tblNachweistyp int Art des Nachweises
tblDaten.ID_Verhalten FK → tblVerhalten int Beobachtetes Verhalten
tblDaten.ID_Reproduktion FK → tblReproduktion int Reproduktionsstatus
tblDaten.ID_Qualitaet FK → tblQualitaet int Qualitätsstufe der Meldung ⚠ auch in tblGeometrie
tblDaten.ID_Habitat FK → tblHabitat int Habitattyp
tblDaten.ID_Alter FK → tblAlter int Altersklasse des Individuums
tblDaten.ID_Einheit FK → tblEinheiten int Zähleinheit
tblDaten.ID_Kategorie FK → tblKategorie int Übergeordnete Kategorie ⚠ auch in tblArten
tblDaten.Ringnummer varchar(255) Ringnummer bei Beringungsdaten
tblDaten.Ringserie varchar(5) Ringserie
tblDaten.Flag_Export bit 1 = für Export markiert
tblDaten.Flag_Filter bit Systemfeld. Für die aktuelle Filterauswahl nutzen Sie ##T1_TEMPTABLE_DATEN.Flag_Filter.
tblDaten.Flag_Basisort bit 1 = Datensatz am Basisort
tblDaten.Flag_Beringung bit 1 = Beringungsdatensatz
tblDaten.Flag_Aggregiert bit 1 = aggregierter (zusammengefasster) Datensatz
tblDaten.Date_Create datetime Zeitstempel der Ersterfassung ⚠ auch in tblGeometrie
tblDaten.Date_Changed datetime Zeitstempel der letzten Änderung ⚠ auch in tblGeometrie
tblDaten.GUID_User FK → tblUser uniqueidentifier Erfassender Benutzer ⚠ auch in tblGeometrie
tblDaten.GUID_Atlas FK → tblAtlas uniqueidentifier Zugeordnetes Atlasprojekt
tblDaten.GUID_Herkunft FK → tblHerkunft uniqueidentifier Datenherkunft oder Quelle

tblArten: Artenliste

Bereits per JOIN verknüpft. Felder mit Präfix tblArten. direkt in der WHERE-Klausel verwendbar.

Feldname Datentyp Beschreibung
tblArten.ID_Art PK int Numerische Art-ID
tblArten.Art_Deutsch varchar(255) Deutscher Artname
tblArten.Art_Wissenschaftlich varchar(255) Wissenschaftlicher Artname (Binomen)
tblArten.Art_Kuerzel varchar(255) Kürzel des Artnamens
tblArten.Art_English varchar(255) Englischer Artname
tblArten.ID_Gruppe FK → tblArtengruppen int Artengruppe
tblArten.ID_Untergruppe int Untergruppe innerhalb der Artengruppe
tblArten.ID_Kategorie int Übergeordnete Kategorie (Tiere, Pflanzen …)
tblArten.FFH varchar(255) FFH-Anhänge und EU-Vogelschutzrichtlinie, mehrere Angaben in einem Wert (z. B. „FFH-II, FFH-IV“, „VRL-Anh.I“); leer, wenn nicht relevant
tblArten.BNatSchG varchar(10) Schutzstatus nach Bundesnaturschutzgesetz: „BG“ = besonders geschützt, „SG“ = streng geschützt
tblArten.Euring varchar(255) EURING-Code (europäische Vogelarten)

tblArtengruppen: Artengruppen

Bereits per JOIN verknüpft (über tblArten). Felder mit Präfix tblArtengruppen. verwendbar.

Feldname Datentyp Beschreibung
tblArtengruppen.ID_Gruppe PK int ID der Artengruppe
tblArtengruppen.Gruppe varchar(255) Bezeichnung auf Deutsch (z. B. „Vögel“, „Fledermäuse“, „Käfer (Coleoptera)“)
tblArtengruppen.Gruppe_wiss varchar(255) Wissenschaftliche Bezeichnung

tblBeobachter: Personen

Bereits per JOIN verknüpft. Felder mit Präfix tblBeobachter. verwendbar. Bestimmer sind als tblBestimmer. verfügbar.

Feldname Datentyp Beschreibung
tblBeobachter.GUID_Beobachter PK uniqueidentifier Eindeutiger Personen-Bezeichner
tblBeobachter.Beobachter nvarchar(255) Vollständiger Name (Anzeigename)
tblBeobachter.Vorname nvarchar(255) Vorname
tblBeobachter.Nachname nvarchar(255) Nachname
tblBeobachter.Institution nvarchar(255) Organisation, Verein oder Behörde
tblBeobachter.Code_Beringer varchar(4) Beringercode (4-stellig)
tblBestimmer.Beobachter nvarchar(255) Name des Bestimmers (eigener Alias)

tblGeometrie: Orte und Gebiete

Bereits per JOIN verknüpft. Felder mit Präfix tblGeometrie. verwendbar.

Feldname Datentyp Beschreibung
tblGeometrie.GUID_Ort PK uniqueidentifier Eindeutiger Standort-Bezeichner
tblGeometrie.Ortsbezeichnung nvarchar(255) Bezeichnung des Orts
tblGeometrie.Nummer varchar(255) Standortnummer (z. B. Kastennummer)
tblGeometrie.Region nvarchar(255) Gebiets- oder Verwaltungseinheit des Standorts
tblGeometrie.Biotop varchar(255) Biotopbeschreibung des Standorts
tblGeometrie.xWGS84 decimal Längengrad des Standorts (WGS84)
tblGeometrie.yWGS84 decimal Breitengrad des Standorts (WGS84)
tblGeometrie.MTB int Messtischblatt-Nummer des Standorts

Weitere verknüpfte Referenztabellen

Diese Tabellen sind ebenfalls per JOIN verfügbar. Das Textfeld der Bezeichnung ist jeweils direkt in der WHERE-Klausel verwendbar.

Tabelle.Feld Datentyp Beschreibung
tblNachweistyp.Nachweistyp varchar(255) Bezeichnung des Nachweistyps (Sicht, Ruf, Totfund …)
tblNachweistyp.Kuerzel varchar(255) Kürzel des Nachweistyps
tblVerhalten.Verhalten varchar(255) Verhaltensbezeichnung (rastend, singend, jagend …)
tblVerhalten.Kuerzel varchar(255) Kürzel des Verhaltens
tblReproduktion.Reproduktion varchar(255) Reproduktionsstatus (Brutvogel, Durchzügler …)
tblReproduktion.Kuerzel varchar(255) Kürzel des Reproduktionsstatus
tblQualitaet.Qualitaet varchar(255) Qualitätsstufe der Meldung
tblHabitat.Habitat varchar(255) Habitattyp-Bezeichnung
tblEinheiten.Einheit varchar(255) Zähleinheit (Individuen, Paare …)
tblKategorie.Kategorie varchar(255) Kategorie-Bezeichnung (Tiere, Pflanzen …)
tblHerkunft.Herkunft varchar(255) Bezeichnung der Datenherkunft
tblAtlas.Atlas varchar(255) Name des Atlasprojekts
tblSammlung.Sammlung varchar(255) Bezeichnung der Sammlung
tblDatenbankherkunft.Datenbankherkunft varchar(255) Bezeichnung der Datenbankherkunft

Beispiele für SQL-Filter

Die folgenden Beispiele geben Sie genau so in das Textfeld des SQL-Filters ein. Datumsangaben sind in der Schreibweise für Microsoft SQL Server notiert ('JJJJMMTT'). Unter Oracle und PostgreSQL schreiben Sie stattdessen zum Beispiel DATE '2023-05-01'.

Datum und Zeitraum

Aufgabe Bedingung
Alle Beobachtungen aus dem Jahr 2023 tblDaten.Jahr = 2023
Beobachtungen von Mai bis Juli 2023 tblDaten.Datum BETWEEN '20230501' AND '20230731'
Alle Dezember-Beobachtungen, gleich aus welchem Jahr tblDaten.Monat = 12
Frühjahrsbeobachtungen (März bis Mai) aus allen Jahren tblDaten.Monat IN (3, 4, 5)
Seit dem 1. Januar 2024 angelegt oder geändert tblDaten.Date_Create >= '20240101' OR tblDaten.Date_Changed >= '20240101'

Arten und Artengruppen

Aufgabe Bedingung
Alle Beobachtungen des Weißstorchs tblArten.Art_Deutsch = 'Weißstorch'
Weißstorch oder Graureiher tblArten.Art_Deutsch IN ('Weißstorch', 'Graureiher')
Alle Arten der Gattung Ciconia tblArten.Art_Wissenschaftlich LIKE 'Ciconia%'
Alle Fledermaus-Beobachtungen tblArtengruppen.Gruppe = 'Fledermäuse'
Arten des FFH-Anhangs IV tblArten.FFH LIKE '%FFH-IV%'
Streng geschützte Arten nach Bundesnaturschutzgesetz tblArten.BNatSchG = 'SG'

Anzahl

Aufgabe Bedingung
Mindestens 10 Individuen tblDaten.Anzahl_Min >= 10
5 bis 50 Individuen tblDaten.Anzahl_Min BETWEEN 5 AND 50

Verwenden Sie für Zahlenvergleiche die Felder Anzahl_Min und Anzahl_Max. Das Feld Anzahl enthält die Angabe als Text (z. B. „ca. 20“) und eignet sich nicht für Vergleiche.

Ort und Koordinaten

Aufgabe Bedingung
Region enthält das Wort „Rhein“ tblDaten.Region LIKE '%Rhein%'
Messtischblatt 6214 tblDaten.MTB = 6214
Mehrere Messtischblätter tblDaten.MTB IN (6214, 6215, 6314)
Nur Beobachtungen mit Koordinaten tblDaten.xWGS84 IS NOT NULL AND tblDaten.yWGS84 IS NOT NULL
Orte, deren Bezeichnung „Wald“ enthält tblGeometrie.Ortsbezeichnung LIKE '%Wald%'

Beobachter

Aufgabe Bedingung
Alle Beobachtungen einer bestimmten Person tblBeobachter.Nachname = 'Mustermann' AND tblBeobachter.Vorname = 'Max'
Alle Beobachtungen der Mitglieder einer Organisation tblBeobachter.Institution LIKE '%Naturschutzbund%'
Alle Beobachtungen, die eine bestimmte Person bestimmt hat tblBestimmer.Beobachter LIKE '%Mustermann%'

Nachweistyp, Verhalten, Reproduktion

Aufgabe Bedingung
Nur Totfunde tblNachweistyp.Nachweistyp LIKE 'Totfund%'
Nur balzende Tiere tblVerhalten.Verhalten = 'balzend'
Nur sichere Brutnachweise (Brutzeitcodes C) tblReproduktion.Reproduktion LIKE 'C%'

Beringungsdaten

Aufgabe Bedingung
Nur Beringungsdatensätze tblDaten.Flag_Beringung = 1
Alle Meldungen zu einer bestimmten Ringnummer tblDaten.Ringnummer = 'A12345'
Alle Beringungen eines bestimmten Beringers tblBeobachter.Code_Beringer = 'AB12' AND tblDaten.Flag_Beringung = 1

Kombinierte Bedingungen

Mehrere Bedingungen verbinden Sie mit AND und OR. Setzen Sie Klammern, wenn Sie beides mischen.

Alle Weißstorch-Beobachtungen ab 2020 mit mindestens 5 Individuen:

tblArten.Art_Deutsch = 'Weißstorch'
AND tblDaten.Jahr >= 2020
AND tblDaten.Anzahl_Min >= 5

Alle Fledermaus-Beobachtungen mit Koordinaten seit 2020:

tblArtengruppen.Gruppe = 'Fledermäuse'
AND tblDaten.Jahr >= 2020
AND tblDaten.xWGS84 IS NOT NULL

Sichere Brutnachweise von Arten des FFH-Anhangs IV in einer Region seit 2015:

tblArten.FFH LIKE '%FFH-IV%'
AND tblReproduktion.Reproduktion LIKE 'C%'
AND tblDaten.Region LIKE '%Rhein%'
AND tblDaten.Jahr >= 2015

Alle Beobachtungen eines bestimmten Atlasprojekts:

tblAtlas.Atlas LIKE '%Brutvogelatlas%'

Sortierung

Am Ende der Bedingung dürfen Sie eine Sortierung anhängen, zum Beispiel nach dem Erstellungsdatum:

tblDaten.Jahr = 2023 ORDER BY tblDaten.Date_Create

Zuletzt aktualisiert am