SCHEMA Grunderwerb;

REFERENCE FROM Administration (Verwaltungsbezirk_abstrakt);

REFERENCE FROM Allgemeine_Objekte (EURO, Quadratmeter, Kilometer, Datum);

ENTITY Flurstueck;
--- Attribute :
    Flurstueck_Zaehler: STRING(5);
    Flurstueck_Nenner: OPTIONAL STRING(3);
    Flaeche: OPTIONAL Quadratmeter;
    Lage: OPTIONAL STRING(100);
    Baukilometer: OPTIONAL Kilometer;
    Liegenschaftsbuch: OPTIONAL STRING(5);
    Flurkarte: OPTIONAL STRING(50);
    Bemerkung: OPTIONAL STRING(100);
--- Relationen :
    hat_Attribute: OPTIONAL SET [1: ?] OF Attribut_Flurstueck;
    hat_Erwerbsflaechen: OPTIONAL SET [1: ?] OF Erwerbsflaeche;
    hat_Nutzungsartteilflaechen: OPTIONAL SET [1: ?] OF Nutzungsartteilflaeche;
    hat_Belastungen: OPTIONAL SET [1: ?] OF Belastung;
    in_Gemarkung: Gemarkung;
    in_Flur: OPTIONAL Flur;
INVERSE
    in_Grundbuch: SET [0: ?] OF Flurstueck_Grundbuch FOR Flurstueck;
    zu_Person: SET [0: ?] OF Person_Flurstueck FOR Flurstueck;
    hat_Paechter_Mieter: SET [0: ?] OF Paechter_Mieter FOR von_Flurstueck;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Flur;
--- Attribute :
    Kennung: STRING(3);
--- Relationen :
INVERSE
    hat_Flurstuecke: SET [0: ?] OF Flurstueck FOR in_Flur;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Attribut_Flurstueck;
--- Attribute :
    Attributname: STRING(100);
    Attributdatum: OPTIONAL Datum;
    Attributstatus: BOOLEAN;
    Attributtext: OPTIONAL STRING;
--- Relationen :
INVERSE
    von_Flurstueck: Flurstueck FOR hat_Attribute;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Erwerbsflaeche;
--- Attribute :
    Erwerbsart: Erwerbsart;
    Erwerbszweck: OPTIONAL Erwerbszweck;
    GE_Massnahme: OPTIONAL GE_Massnahme;
    Bedarfsflaeche: OPTIONAL Quadratmeter;
    GE_Plannummer: OPTIONAL STRING(12);
    laufende_Nummer_Flurstueck: OPTIONAL STRING(4);
    laufende_Nummer_Teilflaeche: OPTIONAL STRING(2);
    Bemerkung: OPTIONAL STRING(50);
--- Relationen :
    hat_Nutzungsart: OPTIONAL Nutzungsart;
INVERSE
    in_Flurstueck: Flurstueck FOR hat_Erwerbsflaechen;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Erwerbsart;
--- Attribute :
    Kennung: STRING(1);
    Erwerbsart: STRING(50);
    GEV_Ausgabespalte: GEV_Ausgabespalte;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   ('?','unbekannt',1)
   ('1','zu erwerbende Fläche',1)
   ('2','vorübergehend in Anspruch zu nehmende Fläche',2)
   ('3','dauernd zu belastende Fläche',3)
   ('4','Restflächenerwerb',1)
   ('5','rückständiger Grunderwerb',1)

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY GEV_Ausgabespalte;
--- Attribute :
    Kennung: INTEGER;
    Beschreibung: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'zu erwerbende Fläche')
   (2,'vorübergehend in Anspruch zu nehmende Fläche')
   (3,'dauernd zu belastende Fläche')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Erwerbszweck;
--- Attribute :
    Kennung: STRING(1);
    Erwerbsart: STRING(50);
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   ('?','unbekannt')
   ('A','für Baulastträger der Baumaßnahme Straße')
   ('B','für Nebenanlagen und Nebenbetriebe')
   ('C','für Dritte')
   ('D','für Baulastträger der Baumaßnahme LBP')
   ('X','Flächen-/Planungsänderung')
   ('Y','Fläche entfällt')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Nutzungsart;
--- Attribute :
    Nutzungsartschluessel: INTEGER;
    Kurztext: OPTIONAL STRING(4);
    Bezeichnung: STRING(50);
--- Relationen :
INVERSE
    von_Nutzungsartteilflaeche: SET [0: ?] OF Nutzungsartteilflaeche FOR hat_Nutzungsart;
    von_Erwerbsflaeche: SET [0: ?] OF Erwerbsflaeche FOR hat_Nutzungsart;
    von_Paechter_Mieter: SET [0: ?] OF Paechter_Mieter FOR hat_Nutzungsart;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY GE_Massnahme;
--- Attribute :
    Kennung: STRING(10);
    Massnahmetext: STRING(200);
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Nutzungsartteilflaeche;
--- Attribute :
    Teilflaeche: OPTIONAL Quadratmeter;
    Bodenwert: OPTIONAL EURO;
--- Relationen :
    hat_Nutzungsart: Nutzungsart;
INVERSE
    von_Flurstueck: Flurstueck FOR hat_Nutzungsartteilflaechen;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Belastung;
--- Attribute :
    Abteilung: STRING(1);
    laufende_Nummer: OPTIONAL STRING(4);
    Belastungstext: OPTIONAL STRING(200);
    Erlaeuterungen: OPTIONAL STRING;
    Eintragung: OPTIONAL Datum;
    Abloesung: OPTIONAL Datum;
    Bemerkung: OPTIONAL STRING(200);
--- Relationen :
    von_Belastungsberechtigten: OPTIONAL SET [1: ?] OF Belastungsberechtigter;
INVERSE
    von_Flurstueck: SET [0: 1] OF Flurstueck FOR hat_Belastungen;
    in_Grundbuch: SET [0: 1] OF Grundbuch FOR hat_Belastungen;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Belastungsberechtigter;
--- Attribute :
    Bemerkung: OPTIONAL STRING(200);
--- Relationen :
    ist_Person: OPTIONAL Person;
INVERSE
    zu_Belastung: SET [0: 1] OF Belastung FOR von_Belastungsberechtigten;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Person_Flurstueck;
--- Attribute :
    Verhaeltnis: OPTIONAL Verhaeltnis;
    Bemerkung: OPTIONAL STRING(200);
--- Relationen :
    Flurstueck: Flurstueck;
    Person: Person;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Verhaeltnis;
--- Attribute :
    Kennung: STRING(1);
    Verhaeltnis: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   ('V','Verfügungsberechtigter')
   ('A','Alteigentümer')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Flurstueck_Grundbuch;
--- Attribute :
    GB_Anteil_Zaehler: INTEGER;
    GB_Anteil_Nenner: INTEGER;
    Eigentumsart: OPTIONAL Eigentumsart;
    Bestandsnummer: OPTIONAL STRING(8);
    Bemerkung: OPTIONAL STRING(50);
--- Relationen :
    Flurstueck: OPTIONAL Flurstueck;
    Grundbuch: OPTIONAL Grundbuch;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Eigentumsart;
--- Attribute :
    Kennung: STRING(1);
    Eigentumsart: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   ('W','Wohneigentum')
   ('E','Erbbaurecht')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Grundbuch;
--- Attribute :
    Band: OPTIONAL STRING(3);
    Blatt: STRING(6);
    Bemerkung: OPTIONAL STRING(100);
--- Relationen :
    zu_Gemarkung: Gemarkung;
    hat_Belastungen: OPTIONAL SET [1: ?] OF Belastung;
INVERSE
    in_Flurstueck_Grundbuch: SET [0: ?] OF Flurstueck_Grundbuch FOR Grundbuch;
    hat_Paechter_Mieter: SET [0: ?] OF Paechter_Mieter FOR zu_Grundbuch;
    hat_Eigentuemer: SET [0: ?] OF Eigentuemer_Grundbuch FOR von_Grundbuch;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Gemarkung;
--- Attribute :
    Schluessel: STRING(4);
--- Relationen :
    in_Verwaltungsbezirk: OPTIONAL SET [1: ?] OF Verwaltungsbezirk_abstrakt;
INVERSE
    hat_Flurstuecke: SET [0: ?] OF Flurstueck FOR in_Gemarkung;
    hat_Grundbuch: SET [0: ?] OF Grundbuch FOR zu_Gemarkung;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Paechter_Mieter;
--- Attribute :
    Pachtbeginn: OPTIONAL Datum;
    Pachtende: OPTIONAL Datum;
    Pachtzins: OPTIONAL EURO;
    Pachtflaeche: OPTIONAL Quadratmeter;
    Vertragsart: OPTIONAL Vertragsart;
    Bemerkung: OPTIONAL STRING(100);
--- Relationen :
    von_Flurstueck: OPTIONAL Flurstueck;
    zu_Grundbuch: OPTIONAL Grundbuch;
    ist_Person: OPTIONAL Person;
    hat_Nutzungsart: OPTIONAL Nutzungsart;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Vertragsart;
--- Attribute :
    Kennung: STRING(1);
    Vertragsart: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   ('s','schriftlich')
   ('m','mündlich')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Eigentuemer_Grundbuch;
--- Attribute :
    Eigentumsverhaeltnis: OPTIONAL Eigentumsverhaeltnis;
    ET_Anteil_Zaehler: INTEGER;
    ET_Anteil_Nenner: INTEGER;
    Bemerkung: OPTIONAL STRING(50);
--- Relationen :
    von_Grundbuch: Grundbuch;
    ist_Person: Person;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Eigentumsverhaeltnis;
--- Attribute :
    Kennung: STRING(1);
    Eigentumsverhaeltnis: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   ('A','Alleineigentümer')
   ('M','Miteigentümer')
   ('U','Ungeteilte Gemeinschaft')
   ('G','Geteilte Gemeinschaft')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Person;
--- Attribute :
    Personenklasse: OPTIONAL Personenklasse;
    Titel: OPTIONAL STRING(32);
    Name: STRING(64);
    Vorname: OPTIONAL STRING(48);
    Strasse: OPTIONAL STRING(48);
    Plz: OPTIONAL STRING(10);
    Ort: OPTIONAL STRING(48);
    Land: OPTIONAL Land;
    Geburtsdatum: OPTIONAL Datum;
    Geburtsname: OPTIONAL STRING(64);
    Anrede: OPTIONAL STRING(50);
    Telefon: OPTIONAL STRING(20);
    Telefax: OPTIONAL STRING(20);
    Bemerkung: OPTIONAL STRING(100);
--- Relationen :
INVERSE
    zu_Flurstueck: SET [0: ?] OF Person_Flurstueck FOR Person;
    ist_Eigentuemer_Grundbuch: SET [0: ?] OF Eigentuemer_Grundbuch FOR ist_Person;
    ist_Paechter_Mieter: SET [0: ?] OF Paechter_Mieter FOR ist_Person;
    ist_Belastungsberechtigter: SET [0: ?] OF Belastungsberechtigter FOR ist_Person;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Land;
--- Attribute :
    Kennung: STRING(1);
    Land: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   ('AFG','Afghanistan')
   ('AL','Albanien')
   ('AND','Andora')
   ('RA','Argentinien')
   ('AZ','Aserbaidschan')
   ('AUS','Australien')
   ('BS','Bahamas')
   ('BRN','Bahrain')
   ('BD','Bangladesch')
   ('BDS','Barbados')
   ('BY','Belanus')
   ('B','Belgien')
   ('BH','Belize')
   ('BOL','Bolivien')
   ('BIH','Bosnien-Herzegowina')
   ('BR','Brasilien')
   ('BRU','Brunei Darussalam')
   ('BG','Bulgarien')
   ('BF','Burkina Faso')
   ('CA','Canada')
   ('DK','Dänemark')
   ('D','Deutschland')
   ('FIN','Finnland')
   ('F','Frankreich')
   ('GR','Griechenland')
   ('GB','Großbritannien')
   ('IRL','Irland')
   ('IS','Island')
   ('IL','Israel')
   ('I','Italien')
   ('J','Japan')
   ('CDN','Kanada')
   ('C','Kuba')
   ('LT','Litauen')
   ('L','Luxenburg')
   ('M','Malta')
   ('MA','Marokko')
   ('MEX','Mexiko')
   ('MC','Monaco')
   ('N','Norwegen')
   ('A','Österreich')
   ('PL','Polen')
   ('P','Portugal')
   ('S','Schweden')
   ('CH','Schweiz')
   ('SLO','Slowenien')
   ('E','Spanien')
   ('ZA','Südafrika')
   ('TR','Türkei')
   ('H','Ungarn')
   ('USA','Vereinigte Staaten')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Personenklasse;
--- Attribute :
    Kennung: STRING(1);
    Personenklasse: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   ('?','unbekannt')
   ('G','Gemeindeverwaltung')
   ('J','juristische Person')
   ('L','Landwirtschaftsamt')
   ('N','natürliche Person')
   ('Ö','öffentlicher Bedarfsträger')
   ('V','verstorben')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

END_SCHEMA; -- Grunderwerb