Base file: U:\Straße und Verkehr\OKSTRA Pflege\OKSTRA-Arbeitsversionen\1.011 Metamodell\EXPRESS_original\gesamt-1011.exp

Compared file: U:\Straße und Verkehr\OKSTRA Pflege\OKSTRA-Arbeitsversionen\1.011 Metamodell\EXPRESS_bereinigt\gesamt_MM.exp

Generated by CSDiff on 15.02.2007 11:55  

SCHEMA Strassennetz;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073
Explizite Ordnung von Routenkomponenten in Routen gemäß N0084

09.09.2005 - 1.010 (1.010)
Anpassung an ASB-ING, Stand 2004
Einführung der Ganglinie
Schema Arbeitsstelle_an_Strassen erstellt

29.06.2004 - 1.005 (1.009)
Anpassung an ASB-Netzdaten, Stand September 2002

03.09.2003 - 1.004 (1.008)
Anbindung der Schemata Kostenberechnung und Ökologie
Korrektur der Relation zu Verwaltungsbezirk
Korrektur der historischen Gültigkeitsdaten (SQL)

31.05.2002 - 1.003 (1.007)
Erweiterung des Strassenpunkts
gemäß Dokument N0031

12.09.2001 - 1.002 (1.004)
Referenzen zum Schema Entwurf angepasst
in Folge des Änderungsantrags A0006
Referenzen zum Schema Unfall angepasst

11.12.2000 - 1.001 (1.002)
Integration symbolischer Verweise für
Teilbauwerk, oertliche_Zuordnung, oertliche_Zuordnung_SP,
Strasse, nicht_nach_ASB_Klass_Strasse, Netzknoten, Nullpunkt,
Abschnitt_oder_Ast und Verwaltungsbezirk

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)



REFERENCE FROM Administration (UI_Vereinbarung,Strassenbaudienststelle,Baulast,ASB_Objekt,
                               Verwaltungsbezirk,Verwaltungsbezirk_abstrakt,OD_FS,Widmung);

REFERENCE FROM Verkehr (Beschraenkung_verkehrlich,Anzahl_Fahrstreifen,
                        Strassenbeschreibung_verkehrl);

REFERENCE FROM Bauwerke (Teilbauwerk,Sachverhalt);

REFERENCE FROM Strassenzustandsdaten (ZEB_Objekt);

REFERENCE FROM Strassenausstattungen (Ausstattung_und_Anlagen,
                                      Strassenentwaesserung);

REFERENCE FROM Bauliche_Strasseneigenschaften (Hindernis,Schutzzone,Durchlass,
                  Schichtbegrenzung,Streifenbegrenzung,Radweg,Fussweg,
                  Fahrbahnbreite,Trassenbreite,Fahrbahntrennung,Schicht,
                  Fahrbahnquerneigung,Fahrbahnlaengsneigung,Bauklasse_Oberbau,
                  Bauweise_Oberbau,Regelquerschnitt,Querschnittstreifen,
                  Bahnigkeit);

REFERENCE FROM Entwurf (Trasse);

REFERENCE FROM Ausstattung (Beschilderung_Lichtsignalanl,Fahrbahnmarkierungen,
                            Schutz_und_Leiteinrichtungen);

REFERENCE FROM Statische_Beschilderung (Wegweiser,stat_verkehrsreg_Beschilderung,
                                          Position,raeumlicher_Gueltigkeitsber,
                                          Standort,Wegweiserinhalt);

REFERENCE FROM Dynamische_Beschilderung (SB_Wirkungsbereiche,
                  WW_Wirkungsbereiche,Wirkungsbereich_SP,
                  Anordnung_des_Messsystems,Aufstellvorrichtung);

REFERENCE FROM Manuelle_Zaehlstelle (oertliche_Zuordnung_MZ,
                                     raeuml_Gueltigkeitsbereich_MZ);

REFERENCE FROM Automatische_Dauerzaehlstelle (oertliche_Zuordnung_DZ,
                automatische_Dauerzaehlstelle,abgeleitete_Dauerzaehlstelle);

REFERENCE FROM Verkehrsstaerke (Ganglinie_Punktobjekt,Ganglinie_Bereichsobjekt);

REFERENCE FROM Historisierung (historisches_Objekt,Teilabschnitt_IdNT);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Datum,Meter,Kilometer,Winkel,Dokument_abstrakt);OKSTRA_konzept_Objekt,
                                   OKSTRA_Schluesseltabelle,Datum,Meter,
                                   Kilometer,Winkel,Dokument_abstrakt);

REFERENCE FROM Geometrieschema (Punktobjekt_Modell,Linienobjekt_Modell,BoundingBox);

REFERENCE FROM Umfeldmessstelle (oertliche_Zuordnung_UM);

REFERENCE FROM Unfall (Angaben_zum_Unfallort,Unfallort_Strassenpunkt);

REFERENCE FROM Lichtsignalanlage (oertliche_Zuordnung_LS);

REFERENCE FROM Kostenberechnung(Projektkennzeichnung_Kostra);

REFERENCE FROM Oekologie (Standortbeschreibung_Baum,Baumassnahme);

REFERENCE FROM Kreuzungen (Kreuzung);

REFERENCE FROM Arbeitsstelle_an_Strassen (Arbeitsstelle_an_Strassen,
                                          verkehrliche_Angaben_Arbeitsst,
                                          Umleitung_Strecke);
                                          
ENTITY Strassenklasse;              -- ASB 97, 3.1
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);             
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Strassenklasse VALUES ('A','Bundesautobahn')
INSERT INTO Strassenklasse VALUES ('B','Bundesstraße')
INSERT INTO Strassenklasse VALUES ('L','Landesstraße')
INSERT INTO Strassenklasse VALUES ('S','Staatsstraße')
INSERT INTO Strassenklasse VALUES ('K','Kreisstraße')
INSERT INTO Strassenklasse VALUES ('G','Gemeindestraße')

   END_SQL
*)

TYPE Strassennummer = INTEGER;   -- ASB 97, 3.1
WHERE
   maximal_vierstellig           : { 0 < SELF <= 9999 };
   (* BEDINGUNG ( SELF > 0 ) AND ( SELF <= 9999 ) *)
END_TYPE;

TYPE Zusatzbuchstabe = STRING(1); -- ASB 97, 3.1
WHERE
   erlaubte_Buchstaben           : { 'A' <= SELF <= 'Z' };
   (* BEDINGUNG ( SELF >= 'A' ) AND ( SELF <= 'Z' ) *)
END_TYPE;

FUNCTION Zusatzbuchstabe_oder_Leerzeichen(zb:Zusatzbuchstabe) : STRING(1);
   IF EXISTS(zb) THEN
      RETURN(zb);
   END_IF;
   RETURN(' ');
END_FUNCTION;

ENTITY Strassenbezeichnung;       -- ASB 97, 3.1
   (* KONZEPTUELL J *)
SUBTYPE OF (OKSTRA_konzept_Objekt);
--- Attribute :
   Strassenklasse                : Strassenklasse;
   Strassennummer                : Strassennummer;
   Zusatzbuchstabe               : OPTIONAL Zusatzbuchstabe;
--- Relationen :
DERIVE
   Strassenname                  : STRING(6) :=
                                   Strassenklasse.Kennung +
                                   FORMAT( Strassennummer, '4I' ) +
                                   Zusatzbuchstabe_oder_Leerzeichen
                                                           (Zusatzbuchstabe);
END_ENTITY;

ENTITY Strasse                   -- ASB 97, 3
SUBTYPE OF (ASB_Objekt,historisches_Objekt,Strasse_abstrakt);
--- Attribute :
   hat_Strassenbezeichnung       : Strassenbezeichnung;
--- Relationen :
   hat_Abschnitt_oder_Ast        : SET [1:?] OF Abschnitt_oder_Ast_abstrakt; (* O *)
   hat_BAB_Knotennummer          : OPTIONAL SET [1:?] OF BAB_Knotennummer; (* O *)
   in_Verwaltungsbezirk          : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *) (* O *)
   enthaelt_Block                : OPTIONAL SET [1:?] OF Block;
   von_Unfallort                 : OPTIONAL SET [1:?] OF Angaben_zum_Unfallort;
   muendet_ein_am_Anfg_von_Unfall: OPTIONAL SET [1:?] OF Angaben_zum_Unfallort;
   muendet_ein_am_Ende_von_Unfall: OPTIONAL SET [1:?] OF Angaben_zum_Unfallort;
   zu_Projektkennzeichnung_Kostra: OPTIONAL SET [1:?] OF Projektkennzeichnung_Kostra;
   zu_Baumassnahme               : OPTIONAL SET [1:?] OF Baumassnahme;
   hat_Arbeitsstelle             : OPTIONAL SET [1:?] OF Arbeitsstelle_an_Strassen;
END_ENTITY;


ENTITY Strasse_abstrakt                   -- ASB 97, 3
ABSTRACT SUPERTYPE OF (ONEOF(Strasse,Strasse_Symbol));
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;


ENTITY Strasse_Symbol                   -- ASB 97, 3
SUBTYPE OF (Strasse_abstrakt);
--- Attribute :
   Kennung                       : STRING(16);
--- Relationen :
END_ENTITY;

TYPE TK25_Blattnummer = STRING(4) FIXED;
END_TYPE;

TYPE lfd_NK_Nummer = STRING(3) FIXED;
END_TYPE;

ENTITY Knotenart;                   -- ASB 97, 1.1.4
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Knotenart VALUES (1,'plangleich (höhengleich)')
INSERT INTO Knotenart VALUES (2,'planfrei (höhenungleich)')
INSERT INTO Knotenart VALUES (3,'teilplanfrei')
INSERT INTO Knotenart VALUES (0,'fiktiver Netzknoten')

   END_SQL
*)

ENTITY Knotenpunktsform;            -- ASB 97, 1.1.6
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Knotenpunktsform VALUES (01,'Einmündung oder Kreuzung von 2-streifigen Straßen')
INSERT INTO Knotenpunktsform VALUES (02,'Einmündung oder Kreuzung von 2-bahnigen mit 2-streifigen Straßen in der Regel mit Lichtsignalanlage')
INSERT INTO Knotenpunktsform VALUES (03,'Einmündung oder Kreuzung von 2-bahnigen Straßen mit Lichtsignalanlage')
INSERT INTO Knotenpunktsform VALUES (04,'planfreie Kreuzung von 2-streifigen oder 2-bahnigen Straßen')
INSERT INTO Knotenpunktsform VALUES (05,'teilplanfreie Kreuzung von 2-streifigen oder 2-bahnigen Straßen')
INSERT INTO Knotenpunktsform VALUES (06,'Kreuzung 2-streifiger Straßen als Versatz')
INSERT INTO Knotenpunktsform VALUES (07,'Aufgeweitete Einmündung oder Kreuzung mit mindestens einer 2-bahnigen Straße')
INSERT INTO Knotenpunktsform VALUES (08,'kleiner Kreisverkehrsplatz, d < 30 m')
INSERT INTO Knotenpunktsform VALUES (09,'großer Kreisverkehrsplatz, d > 30 m')
INSERT INTO Knotenpunktsform VALUES (11,'Einmündung oder Kreuzung von 2-streifigen Straßen mit Lichtsignalanlage')
INSERT INTO Knotenpunktsform VALUES (12,'Einmündung oder Kreuzung von 2-bahnigen mit 2-streifigen Straßen mit Lichtsignalanlage')
INSERT INTO Knotenpunktsform VALUES (13,'planfreie Kreuzung mit Lichtsignalanlagen')
INSERT INTO Knotenpunktsform VALUES (14,'Kreuzung 2-streifiger Straßen als Versatz mit Lichtsignalanlage')

   END_SQL
*)

ENTITY Knotenpunktsystem;           -- ASB 97, 1.1.7
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Knotenpunktsystem VALUES (01,'Trompete')
INSERT INTO Knotenpunktsystem VALUES (02,'Birne')
INSERT INTO Knotenpunktsystem VALUES (03,'Dreieck mit 3 zweigeschossigen Bauwerken')
INSERT INTO Knotenpunktsystem VALUES (04,'Dreieck mit 1 dreigeschossigen Bauwerk')
INSERT INTO Knotenpunktsystem VALUES (05,'Kleeblatt')
INSERT INTO Knotenpunktsystem VALUES (06,'Kleeblatt, abgewandelt mit halbdirekter Führung eines Linksabbiegestromes')
INSERT INTO Knotenpunktsystem VALUES (07,'Kleeblatt, abgewandelt mit zügiger halbdirekter Führung eines Linksabbiegestromes')
INSERT INTO Knotenpunktsystem VALUES (08,'halbes Kleeblatt')
INSERT INTO Knotenpunktsystem VALUES (09,'halbes Kleeblatt, asymmetrisch')
INSERT INTO Knotenpunktsystem VALUES (10,'halbes Kleeblatt, asymmetrisch mit innen- und hintereinanderliegenden Linksabbiegespuren')
INSERT INTO Knotenpunktsystem VALUES (11,'halbes Kleeblatt, asymmetrisch mit innen- und nebeneinanderliegenden Linksabbiegespuren')
INSERT INTO Knotenpunktsystem VALUES (12,'halbes Kleeblatt, symmetrisch')
INSERT INTO Knotenpunktsystem VALUES (13,'Raute mit innen- und hintereinanderliegenden Linksabbiegespuren')
INSERT INTO Knotenpunktsystem VALUES (14,'Raute mit innen- und nebeneinanderliegenden Linksabbiegespuren')
INSERT INTO Knotenpunktsystem VALUES (15,'Raute mit aufgeweiteter Kreuzung')
INSERT INTO Knotenpunktsystem VALUES (16,'Raute mit außenliegenden Linksabbiegespuren')
INSERT INTO Knotenpunktsystem VALUES (17,'Sondersystem')

   END_SQL
*)

ENTITY Netzknoten                -- ASB 97, 1.1
SUBTYPE OF (ASB_Objekt,Punktobjekt_Modell,historisches_Objekt,Netzknoten_abstrakt);
   (* KEY_TYP CHAR(7) *)
--- Attribute :
   Numerierungsbezirk            : TK25_Blattnummer;
   Nummer                        : lfd_NK_Nummer;
   Knotenart                     : OPTIONAL Knotenart;
   Knotenname                    : OPTIONAL STRING(60);
   Knotenpunktsform              : OPTIONAL Knotenpunktsform;
   Knotenpunktsystem             : OPTIONAL Knotenpunktsystem;
--- Relationen :
   hat_BAB_Knotennummer          : OPTIONAL SET [1:?] OF BAB_Knotennummer; (* O *)
   hat_Nullpunkt                 : SET [1:?] OF Nullpunkt_abstrakt; (* O *)
   enthaelt_Strassenelement      : OPTIONAL SET [1:?] OF Strassenelement_abstrakt; (* O *)
   hat_Netzknotenskizze          : OPTIONAL SET [1:?] OF Dokument_abstrakt; (* O *)
   hat_Einmessskizze             : OPTIONAL SET [1:?] OF Dokument_abstrakt; (* O *)
   Beginn_von                    : OPTIONAL SET [1:?] OF WW_Wirkungsbereiche; (* O *)
   Ende_von                      : OPTIONAL SET [1:?] OF WW_Wirkungsbereiche; (* O *)
   auf_Trasse                    : OPTIONAL SET [1:?] OF Trasse; (* O *)
   hat_Wegweiser                 : OPTIONAL SET [1:?] OF Wegweiser;
END_ENTITY;

ENTITY Netzknoten_abstrakt                -- ASB 97, 1.1
ABSTRACT SUPERTYPE OF (ONEOF(Netzknoten,Netzknoten_Symbol));
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Netzknoten_Symbol                -- ASB 97, 1.1
SUBTYPE OF (Netzknoten_abstrakt);
--- Attribute :
   Kennung                       : STRING(7) FIXED;
--- Relationen :
END_ENTITY;

ENTITY TK25Blatt
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Nummer                        : TK25_Blattnummer;
   Bezeichnung                   : OPTIONAL STRING(30);
--- Relationen :
   hat_Bereich                   : OPTIONAL BoundingBox; -- optional, da ableitbar aus der Nummer
   hat_Zuordnung                 : OPTIONAL SET [1:?] OF Nummernintervall;
END_ENTITY;

ENTITY Nummernintervall
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   von                           : lfd_NK_Nummer;
   bis                           : lfd_NK_Nummer;
--- Relationen :
   fuer_Land                     : SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
INVERSE
   gehoert_zu_TK25Blatt          : TK25Blatt FOR hat_Zuordnung;
END_ENTITY;

ENTITY BAB_Knotennummer
SUBTYPE OF (ASB_Objekt,historisches_Objekt);
--- Attribute :
   Knotennummer                  : INTEGER;
   Buchstabe                     : OPTIONAL STRING(1);
--- Relationen :
   auf_Strasse                   : SET [1:?] OF Strasse_abstrakt; (* D *) (* O *)
   von_Netzknoten                : SET [1:?] OF Netzknoten_abstrakt; (* D *) (* O *)
END_ENTITY;

ENTITY Stadium
SUBTYPE OF (OKSTRA_konzept_Objekt);
--- Attribute :
   unter_Verkehr                 : BOOLEAN;
   Stadium                       : Tab_Stadium;
   Verkehrsfreigabe              : Datum;
--- Relationen :
END_ENTITY;

ENTITY Tab_Stadium;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(3) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(3);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tab_Stadium VALUES ('VP','Vorplanung hat begonnen')
INSERT INTO Tab_Stadium VALUES ('UVA','Umweltverträglichkeitsstudie bzw. Variantenuntersuchung hat begonnen')
INSERT INTO Tab_Stadium VALUES ('UVE','Umweltverträglichkeitsstudie bzw. Variantenuntersuchung ist abgeschlossen')
INSERT INTO Tab_Stadium VALUES ('LBV','Unterlagen für Linienbestimmung/Trassenfestlegung werden aufgestellt')
INSERT INTO Tab_Stadium VALUES ('LBE','Linie bestimmt/Trassenführung festgelegt')
INSERT INTO Tab_Stadium VALUES ('VE','Vorentwurf hat begonnen')
INSERT INTO Tab_Stadium VALUES ('VEG','Vorentwurf genehmigt')
INSERT INTO Tab_Stadium VALUES ('PA','Planfeststellungsverfahren beantragt')
INSERT INTO Tab_Stadium VALUES ('PB','Planfeststellungsbeschluss ergangen')
INSERT INTO Tab_Stadium VALUES ('PU','Planfeststellungsbeschluss bestandskräftig')
INSERT INTO Tab_Stadium VALUES ('BAU','Durchführung der Bauarbeiten begonnen')
INSERT INTO Tab_Stadium VALUES ('VFV','Verkehrsfreigabe der Gesamtstrecke der Verkehrseinheit ist erfolgt')
INSERT INTO Tab_Stadium VALUES ('EPL','Erneuerung/Ersatzneubau in Planung')
INSERT INTO Tab_Stadium VALUES ('EAU','Erneuerung/Ersatzneubau in Ausführung')
INSERT INTO Tab_Stadium VALUES ('IPL','Instandsetzung in Planung')
INSERT INTO Tab_Stadium VALUES ('IAU','Instandsetzung in Ausführung')

   END_SQL
*)

ENTITY Abschnitt_oder_Ast        -- ASB 97, 2.1/2.2
ABSTRACT SUPERTYPE OF (ONEOF(Abschnitt,Ast))
SUBTYPE OF (ASB_Objekt,Linienobjekt_Modell,historisches_Objekt,Abschnitt_oder_Ast_abstrakt);
   (* KEY_TYP CHAR(16) *)
   (* ARTEN J *)
   (* SAMMELN J *)
--- Attribute :
   Laenge                        : OPTIONAL Kilometer;
   Herkunft_Laenge               : OPTIONAL Herkunft_Laenge;
   Stadium                       : OPTIONAL Stadium;
   Betriebsmerkmal               : OPTIONAL Betriebsmerkmal;
   Abschnitts_Astnummer          : OPTIONAL STRING(7);
   Abschnitts_Astbezeichnung     : OPTIONAL STRING(60);
--- Relationen :
   beginnt_bei_NP                : SET [1:?] OF Nullpunkt_abstrakt; (* D *) (* O *)
   endet_bei_NP                  : SET [1:?] OF Nullpunkt_abstrakt; (* D *) (* O *)
   gehoert_zu_Strasse            : SET [1:?] OF Strasse_abstrakt; (* D *) (* O *)
   enthaelt_Strassenelement      : OPTIONAL SET [1:?] OF Strassenelement_abstrakt; (* O *)
   hat_Teilabschnitt             : OPTIONAL SET [1:?] OF Teilabschnitt; (* O *)
   hat_Strassenpunkt             : OPTIONAL SET [1:?] OF Strassenpunkt; (* O *)
   zu_Baumassnahme               : OPTIONAL SET [1:?] OF Baumassnahme;
END_ENTITY;

ENTITY Herkunft_Laenge;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Herkunft_Laenge VALUES (1,'vor Ort gemessen')
INSERT INTO Herkunft_Laenge VALUES (2,'Bauunterlagen')
INSERT INTO Herkunft_Laenge VALUES (3,'Planungsunterlagen')
INSERT INTO Herkunft_Laenge VALUES (4,'aus der Digitalisierung')

   END_SQL
*)

ENTITY Abschnitt_oder_Ast_abstrakt        -- ASB 97, 2.1/2.2
ABSTRACT SUPERTYPE OF (ONEOF(Abschnitt_oder_Ast,Abschnitt_oder_Ast_Symbol));
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Abschnitt_oder_Ast_Symbol        -- ASB 97, 2.1/2.2
SUBTYPE OF (Abschnitt_oder_Ast_abstrakt);
--- Attribute :
   Kennung                       : STRING(16);
--- Relationen :
END_ENTITY;

ENTITY Abschnitt                 -- ASB 97, 2.1
SUBTYPE OF (Abschnitt_oder_Ast);
   (* SAMMELN J *)
--- Attribute :
   Seitenarm                     : OPTIONAL BOOLEAN;
   getrennt_verlaufende_Fahrbahn : OPTIONAL Zweig_der_Trennung;
   Abschnittsfolgenummer         : OPTIONAL STRING(4);
--- Relationen :
END_ENTITY;

ENTITY Zweig_der_Trennung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Zweig_der_Trennung VALUES (1,'getrennt verlaufende Fahrbahn, Zweig 1 (in Stationierungsrichtung befahren)')
INSERT INTO Zweig_der_Trennung VALUES (2,'getrennt verlaufende Fahrbahn, Zweig 2 (gegen Stationierungsrichtung befahren)')

   END_SQL
*)

ENTITY Ast                       -- ASB 97, 2.2
SUBTYPE OF (Abschnitt_oder_Ast);
   (* SAMMELN J *)
--- Attribute :
   Funktion                      : Funktion_des_Astes;
--- Relationen :
END_ENTITY;

ENTITY Funktion_des_Astes;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Funktion_des_Astes VALUES (1,'Einfahrt / Ausfahrt')
INSERT INTO Funktion_des_Astes VALUES (2,'Parallelfahrbahn (baulich getrennt)')
INSERT INTO Funktion_des_Astes VALUES (3,'Fahrbahn des Kreisverkehrs')

   END_SQL
*)

ENTITY Betriebsmerkmal;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Betriebsmerkmal VALUES (1,'durchgehende Strecke')
INSERT INTO Betriebsmerkmal VALUES (2,'Verbindungsrampe')

   END_SQL
*)

TYPE Nullpunktkennung = STRING(1); -- ASB 1.2
WHERE
   Buchstabe                     : {'A' <= SELF <= 'Z'} OR SELF = ' ';
   (* BEDINGUNG ( ( SELF >= 'A' AND SELF <= 'Z' ) OR ( SELF = ' ' ) ) *)
END_TYPE;

ENTITY Nullpunkt                 -- ASB 97, 1.2
SUBTYPE OF (ASB_Objekt,Punktobjekt_Modell,historisches_Objekt,Nullpunkt_abstrakt);
   (* KEY_TYP CHAR(8) *)
--- Attribute :
   Zusatz                        : Nullpunktkennung;
   Nullpunktart                  : Nullpunktart;
--- Relationen :
   in_Netzknoten                 : SET [1:?] OF Netzknoten_abstrakt; (* D *) (* O *)
   Beginn_von_Abschnitt_oder_Ast : OPTIONAL SET [1:?] OF Abschnitt_oder_Ast_abstrakt; (* O *)
   Ende_von_Abschnitt_oder_Ast   : OPTIONAL SET [1:?] OF Abschnitt_oder_Ast_abstrakt; (* O *)
   hat_Nullpunktsort             : SET [1:?] OF Nullpunktsort; (* O *)
   hat_Strassenelement           : OPTIONAL SET [1:?] OF Strassenelement_abstrakt; (* O *)
   ist_Verbindungspunkt          : OPTIONAL SET [1:?] OF Verbindungspunkt_abstrakt; (* O *)
WHERE
   Beginn_von_oder_Ende_von      : EXISTS(Beginn_von_Abschnitt_oder_Ast) OR
                                         EXISTS(Ende_von_Abschnitt_oder_Ast);
END_ENTITY;

ENTITY Nullpunktart;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Nullpunktart VALUES (1,'zentraler Nullpunkt')
INSERT INTO Nullpunktart VALUES (2,'Nullpunkt')
INSERT INTO Nullpunktart VALUES (0,'fiktiver Nullpunkt')

   END_SQL
*)

ENTITY Nullpunkt_abstrakt                 -- ASB 97, 1.2
ABSTRACT SUPERTYPE OF (ONEOF(Nullpunkt,Nullpunkt_Symbol));
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Nullpunkt_Symbol                 -- ASB 97, 1.2
SUBTYPE OF (Nullpunkt_abstrakt);
--- Attribute :
   Kennung                       : STRING(8) FIXED;
--- Relationen :
END_ENTITY;

ENTITY Strassenpunkt             -- ASB 97, 2.9.1.1
ABSTRACT SUPERTYPE OF (ONEOF(Strassenpunkt_TA,Strassenpunkt_PO,Nullpunktsort,
                             Strassenpunkt_PoB));
   (* VERERBEN DOWN *)
   (* KONZEPTUELL J *)
SUBTYPE OF (OKSTRA_konzept_Objekt);
--- Attribute :
   Station                       : Kilometer;
   Abstand_zur_Bestandsachse     : OPTIONAL Meter;
   Abstand_zur_Fahrbahnoberkante : OPTIONAL Meter;
--- Relationen :
   auf_Abschnitt_oder_Ast        : SET [1:?] OF Abschnitt_oder_Ast_abstrakt; (* OD *)
END_ENTITY;

ENTITY Bezugsrichtung;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Bezugsrichtung VALUES ('B','beide Richtungen')
INSERT INTO Bezugsrichtung VALUES ('R','in Stationierungsrichtung')
INSERT INTO Bezugsrichtung VALUES ('G','gegen Stationierungsrichtung')

   END_SQL
*)

ENTITY Strassenpunkt_PO
SUBTYPE OF (Strassenpunkt);
   (* KONZEPTUELL J *)
--- Attribute :
--- Relationen :
INVERSE
   gehoert_zu_PO                 : Punktobjekt FOR bei_Strassenpunkt;
END_ENTITY;

ENTITY Punktobjekt               -- ASB 97, C.1.1.1
ABSTRACT SUPERTYPE OF (ONEOF(Punktobjekt_stat,Punktobjekt_hist))
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
   bei_Strassenpunkt             : Strassenpunkt_PO;
END_ENTITY;

ENTITY Punktobjekt_stat
ABSTRACT SUPERTYPE OF (ONEOF(Position,stat_verkehrsreg_Beschilderung,Standort,
                              Unfallort_Strassenpunkt,Anordnung_des_Messsystems,
                              oertliche_Zuordnung_SP,Sachverhalt,
                              Wirkungsbereich_SP,Standortbeschreibung_Baum,
                              Ganglinie_Punktobjekt,Nullpunktsort))
SUBTYPE OF (Punktobjekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Punktobjekt_hist
ABSTRACT SUPERTYPE OF (ONEOF(Schichtbegrenzung,Streifenbegrenzung,Durchlass,
                             Kilometrierung,Aufstellvorrichtung,Kreuzung,
                             Teilbauwerk))
SUBTYPE OF (Punktobjekt,historisches_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY oertliche_Zuordnung  -- ISSUE 175
ABSTRACT SUPERTYPE OF (ONEOF(oertliche_Zuordnung_UM,oertliche_Zuordnung_DZ,
oertliche_Zuordnung_MZ,oertliche_Zuordnung_LS))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   liegt_auf_Strassenpunkt       : OPTIONAL oertliche_Zuordnung_SP;
   liegt_auf_nicht_klass_Strasse : OPTIONAL nicht_nach_ASB_klass_Strasse;
WHERE
   Strassenpunkt_o_nicht_klassif : EXISTS(liegt_auf_Strassenpunkt) XOR
                                   EXISTS(liegt_auf_nicht_klass_Strasse);
   (* BEDINGUNG ( ( liegt_auf_Strassenpunkt IS NOT NULL ) OR
                  ( liegt_auf_nicht_klass_Strasse IS NOT NULL ) ) AND
                ( ( liegt_auf_Strassenpunkt IS NULL ) OR
                  ( liegt_auf_nicht_klass_Strasse IS NULL ) ) *)
END_ENTITY;

ENTITY oertliche_Zuordnung_SP
SUBTYPE OF (Punktobjekt_stat);  -- ISSUE 158
--- Attribute :
--- Relationen :
INVERSE
   von_oertlicher_Zuordnung      : SET [0:?] OF oertliche_Zuordnung
                                             FOR liegt_auf_Strassenpunkt;
END_ENTITY;

ENTITY nicht_nach_ASB_klass_Strasse
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Strassenklasse                : STRING(50);
   Nummer                        : INTEGER;
   Lage                          : STRING(28);
--- Relationen :
INVERSE
   von_oertlicher_Zuordnung      : SET [0:?] OF oertliche_Zuordnung
                                       FOR liegt_auf_nicht_klass_Strasse;
   zu_Projektkennzeichnung_Kostra: SET [0:?] OF Projektkennzeichnung_Kostra
                                    FOR hat_nicht_nach_ASB_klass_Str;
END_ENTITY;

ENTITY Strassenpunkt_TA
SUBTYPE OF (Strassenpunkt);
   (* KONZEPTUELL J *)
--- Attribute :
--- Relationen :
INVERSE
   Beginn_von_TA                 : SET [0:1] OF Teilabschnitt
                                             FOR beginnt_bei_SP;
   Ende_von_TA                   : SET [0:1] OF Teilabschnitt
                                             FOR endet_bei_SP;
WHERE
   entweder_Beginn_oder_Ende     : EXISTS(Beginn_von_TA) XOR
                                         EXISTS(Ende_von_TA);
END_ENTITY;

ENTITY Nullpunktsort             -- ASB 97, 1.2.2
SUBTYPE OF (ASB_Objekt,StrassenpunktPunktobjekt_stat);
--- Attribute :
--- Relationen :
   bei_Nullpunkt                 : SET [1:?] OF Nullpunkt_abstrakt; (* D *) (* O *)
END_ENTITY;

ENTITY Strassenpunkt_PoB
SUBTYPE OF (Strassenpunkt);
   (* KONZEPTUELL J *)
--- Attribute :
--- Relationen :
INVERSE
   Punktobjekt_o_Bereichsobjekt  : SET [0:?] OF Punktobjekt_o_Bereichsobjekt
                                             FOR ist_Punktobjekt;
   bei_Nullpunkt                 : SET [1:?] OF Nullpunkt_abstrakt; (* D *)
END_ENTITY;

ENTITY Punktobjekt_o_Bereichsobjekt
ABSTRACT SUPERTYPE OF (ONEOF(Beschilderung_Lichtsignalanl,Fahrbahnmarkierungen,
                             Schutz_und_Leiteinrichtungen))
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
   ist_Punktobjekt               : OPTIONAL Strassenpunkt_PoB;
   ist_Bereichsobjekt            : OPTIONAL Netzbereich;
WHERE
   Punktobjekt_o_Bereichsobjekt  : EXISTS(ist_Punktobjekt) XOR
                                   EXISTS(ist_Bereichsobjekt);
END_ENTITY;

ENTITY Netzbereichskomponente
ABSTRACT SUPERTYPE OF (ONEOF(Teilabschnitt_NB,Netzbereich,Strecke));
   (* ARTEN J *)
   (* BEMERKUNG Arten anpassen *)
   (* ERSETZEN Teilabschnitt_NB,Netzbereichskomponente *)
--- Attribute :
--- Relationen :
INVERSE
   in_Netzbereich                : SET [0:?] OF Netzbereich
                                       FOR enthaelt_Netzbereichskomp; (* S 1 *)
END_ENTITY;

ENTITY Netzbereich
SUBTYPE OF (ASB_Objekt,Netzbereichskomponente,historisches_Objekt);
   (* BUENDELN J *)
   (* EINMAL Abschnitt_oder_Ast_abstrakt *)
   (* BEMERKUNG Stations-Attribute umbenennen *)
--- Attribute :
--- Relationen :
   enthaelt_Netzbereichskomp     : SET [1:?] OF Netzbereichskomponente;
INVERSE
   zu_Bereichsobjekt             : SET [1:?] OF Bereichsobjekt
                                             FOR hat_Netzbereich; (* D *)
   Punktobjekt_o_Bereichsobjekt  : SET [0:?] OF Punktobjekt_o_Bereichsobjekt
                                             FOR ist_Bereichsobjekt;
END_ENTITY;

ENTITY Bereichsobjekt
ABSTRACT SUPERTYPE OF (ONEOF(Bereichsobjekt_stat,Bereichsobjekt_hist))
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
   hat_Netzbereich               : SET [1:?] OF Netzbereich; (* D *)
END_ENTITY;

ENTITY Bereichsobjekt_stat
ABSTRACT SUPERTYPE OF (ONEOF(Ganglinie_Bereichsobjekt))
SUBTYPE OF (Bereichsobjekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Bereichsobjekt_hist
ABSTRACT SUPERTYPE OF (ONEOF(UI_Vereinbarung,Strassenbaudienststelle,
                             Baulast,Verwaltungsbezirk,Schutzzone,Teilnetz_ASB))
SUBTYPE OF (Bereichsobjekt,historisches_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Teilnetz_ASB
SUBTYPE OF (ASB_Objekt,Bereichsobjekt_hist);
--- Attribute :
   Teilnetzklasse                : Teilnetzklasse;
   -- In den Teilnetzklassen 80-98 koennen
   -- laenderspezifische Attribute abgebildet werden.   Nummer_in_Teilnetz            : STRING(7);
   Name_in_Teilnetz              : STRING(60);
   Winterdienstprioritaet        : OPTIONAL Winterdienstprioritaet;
   Richtung                      : OPTIONAL Bezugsrichtung;
--- Relationen :
END_ENTITY;

ENTITY Teilnetzklasse;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Teilnetzklasse VALUES (1,'Europastraße')
INSERT INTO Teilnetzklasse VALUES (2,'Kraftfahrstraße')
INSERT INTO Teilnetzklasse VALUES (3,'Planungsnetz')
INSERT INTO Teilnetzklasse VALUES (4,'Regionales Netz')
INSERT INTO Teilnetzklasse VALUES (5,'Touristische Straße')
INSERT INTO Teilnetzklasse VALUES (6,'Bedarfsumleitung')
INSERT INTO Teilnetzklasse VALUES (7,'Fahrverbot (für Gefahrgut)')
INSERT INTO Teilnetzklasse VALUES (8,'Weiße Strecken (kein Winterdienst)')
INSERT INTO Teilnetzklasse VALUES (9,'Hochwasser gefährdete Strecken')
INSERT INTO Teilnetzklasse VALUES (10,'Höhenklasse')
INSERT INTO Teilnetzklasse VALUES (11,'Winterdienstpriorität')
INSERT INTO Teilnetzklasse VALUES (12,'MilGeo-Netze')

   END_SQL
*)

ENTITY Winterdienstprioritaet;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Winterdienstprioritaet VALUES (1,'hohe Winterdienstpriorität')
INSERT INTO Winterdienstprioritaet VALUES (2,'mittlere Winterdienstpriorität')
INSERT INTO Winterdienstprioritaet VALUES (3,'geringe Winterdienstpriorität')

   END_SQL
*)

ENTITY Teilabschnitt             -- ASB 97, 2.9.2.1
ABSTRACT SUPERTYPE OF (ONEOF(Teilabschnitt_SO,Teilabschnitt_NB,
                             Teilabschnitt_Str,Teilabschnitt_IdNT));
   (* VERERBEN DOWN *)
   (* KONZEPTUELL J *)
SUPERTYPE OF (ONEOF(Teilabschnitt_IdNT))
SUBTYPE OF (verallgemeinerte_Strecke,Netzbereichskomponente);
--- Attribute :
--- Relationen :
   beginnt_bei_SP                : Strassenpunkt_TA;
   endet_bei_SP                  : Strassenpunkt_TA;
   auf_Abschnitt_oder_Ast        : SET [1:?] OF Abschnitt_oder_Ast_abstrakt; (* OD *)
INVERSE
   in_Strecke                    : SET [0:?] OF Strecke 
                                             FOR entlang_Teilabschnitt;   
END_ENTITY;

ENTITY verallgemeinerte_Strecke
ABSTRACT SUPERTYPE OF (ONEOF(Teilabschnitt_SO,,Strecke_SO,Strassenelement));
   (* VERERBEN DOWN *)
   (* ERSETZEN Strecke *)
--- Attribute :
--- Relationen :
INVERSE
   zu_Streckenobjekt             : SET [0:?] OF Streckenobjekt
                                             FOR hat_Strecke; (* D *)
END_ENTITY;

ENTITY Teilabschnitt_SO
SUBTYPE OF (Teilabschnitt,verallgemeinerte_Strecke);
   (* KONZEPTUELL J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Streckenobjekt            -- ASB 97, C.1.1.1.2
ABSTRACT SUPERTYPE OF (ONEOF(Streckenobjekt_stat,Streckenobjekt_hist))
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
   hat_Strecke                   : SET [1:?] OF verallgemeinerte_Strecke;
                                   (* D *)
END_ENTITY;

ENTITY Streckenobjekt_stat
ABSTRACT SUPERTYPE OF (ONEOF(Fahrbahntrennung,Trassenbreite,Fahrbahnbreite,
                             Fussweg,Radweg,ZEB_Objekt,Strassenentwaesserung,
                             Beschraenkung_verkehrlich,
                             Strassenbeschreibung_verkehrl,Anzahl_Fahrstreifen,
                             Entwurfselement,Teilbauwerk,Sachverhalt,
                             Arbeitsstelle_an_Strassen,verkehrliche_Angaben_Arbeitsst,
                             Umleitung_Strecke))
SUBTYPE OF (Streckenobjekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Streckenobjekt_hist
ABSTRACT SUPERTYPE OF (ONEOF(Fahrbahnlaengsneigung,Widmung,Querschnittstreifen,
                             Fahrbahnquerneigung,OD_FS,Schicht,Hindernis,Block,
                             Bauklasse_Oberbau,Bauweise_Oberbau,Bahnigkeit,
                             Regelquerschnitt,raeumlicher_Gueltigkeitsber,
                             SB_Wirkungsbereiche,Ausstattung_und_Anlagen,
                             automatische_Dauerzaehlstelle,abgeleitete_Dauerzaehlstelle,
                             raeuml_Gueltigkeitsbereich_MZ,Strassenelement_auf_Abschnitt_oder_Ast))
SUBTYPE OF (Streckenobjekt,historisches_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Teilabschnitt_Str
SUBTYPE OF (Teilabschnitt);
   (* KONZEPTUELL J *)
--- Attribute :
--- Relationen :
INVERSE
   in_Strecke                    : Strecke FOR entlang_Teilabschnitt;
END_ENTITY;

ENTITY Teilabschnitt_NB
SUBTYPE OF (Teilabschnitt,Netzbereichskomponente);
   (* KONZEPTUELL J *)
   (* ERBEN NONE *)
--- Attribute :
--- Relationen :
WHERE
   Teilabschnitt_NB_existiert    : EXISTS(SELF\Netzbereichskomponente.
                                                            in_Netzbereich);
END_ENTITY;

ENTITY Strecke                   -- ASB 97, 2.9.2.2
SUPERTYPE OF (Strecke_SO)
SUBTYPE OF (ASB_Objekt,Netzbereichskomponente,verallgemeinerte_Strecke,historisches_Objekt);
   (* EINMAL Abschnitt_oder_Ast_abstrakt *)
   (* BEMERKUNG Reihenfolge und Stationen anpassen *)
--- Attribute :
--- Relationen :
   entlang_Teilabschnitt         : LIST [1:?] OF Teilabschnitt_Str;
END_ENTITY;

ENTITY Strecke_SO
SUBTYPE OF (Strecke,verallgemeinerte_Strecke);
--- Attribute :
--- Relationen :
   entlang_Teilabschnitt         : LIST [1:?] OF Teilabschnitt;
END_ENTITY;

ENTITY Teilnetzkomponente
ABSTRACT SUPERTYPE OF (ONEOF(Strassenelement,Teilnetz,Route))
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
INVERSE
   in_Teilnetz                   : SET [0:?] OF Teilnetz
                                             FOR enthaelt_Teilnetzkomponente;
END_ENTITY;

ENTITY Teilnetz                  -- ASB 97, 3.7
SUBTYPE OF (ASB_Objekt,Teilnetzkomponente,historisches_Objekt);
--- Attribute :
   Kennzeichen_Teilnetz          : OPTIONAL STRING(6);
   Beschreibung_Teilnetz         : OPTIONAL STRING(60);
--- Relationen :
   enthaelt_Teilnetzkomponente   : SET [1:?] OF Teilnetzkomponente;
END_ENTITY;

ENTITY Routenkomponente
ABSTRACT SUPERTYPE OF (ONEOF(Strassenelement,Route))
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
INVERSE
   in_Route                      : SET [0:?] OF Route
                                             FOR entlang_Routenkomponente;
END_ENTITY;

ENTITY Route
SUBTYPE OF (ASB_Objekt,Teilnetzkomponente,Routenkomponente,historisches_Objekt);
--- Attribute :
--- Relationen :
   entlang_Routenkomponente      : LIST [1:?] OF Routenkomponente;
END_ENTITY;

ENTITY Strassenelement
SUBTYPE OF (ASB_Objekt,Teilnetzkomponente,Routenkomponente,historisches_Objekt,
            Linienobjekt_Modell,verallgemeinerte_Strecke,Strassenelement_abstrakt);
   (* KEY_TYP CHAR(24) *)
--- Attribute :
   GDF_ID                        : OPTIONAL STRING;
   -- GDF_ID benötigt man zusätzlich, wenn man persistente GDF-Identifier unterstützen will
   Verkehrsrichtung              : OPTIONAL Verkehrsrichtung_SE;
--- Relationen :
   beginnt_bei_VP                : SET [1:?] OF Verbindungspunkt_abstrakt; (* D *) (* O *)
   endet_bei_VP                  : SET [1:?] OF Verbindungspunkt_abstrakt; (* D *) (* O *)
   stationiert_auf_AoA           : OPTIONAL SET [1:?] OF Strassenelement_auf_Abschnitt_oder_Ast; (* D *)
   in_Nullpunkt                  : OPTIONAL SET [1:?] OF Nullpunkt_abstrakt; (* D *) (* O *)
   zwischen_Kreuzungsbereichen   : OPTIONAL SET [1:?] OF Abschnitt_oder_Ast_abstrakt; (* D *) (* O *)
   im_Kreuzungsbereich           : OPTIONAL SET [1:?] OF Netzknoten_abstrakt; (* D *) (* O *)
   Beginn_von_verbotener_Fahrbez : OPTIONAL SET [1:?] OF Verbotene_Fahrbeziehung; (* D *)
   Mitte_von_verbotener_Fahrbez  : OPTIONAL SET [1:?] OF Verbotene_Fahrbeziehung; (* D *)
   Ende_von_verbotener_Fahrbez   : OPTIONAL SET [1:?] OF Verbotene_Fahrbeziehung; (* D *)
   von_Wegweiserinhalt           : OPTIONAL SET [1:?] OF Wegweiserinhalt; (* D *)
   nach_Wegweiserinhalt          : SET [0:?] OF Wegweiserinhalt; (* D *)
END_ENTITY;

ENTITY Verkehrsrichtung_SE;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Verkehrsrichtung_SE VALUES ('R','Verkehrsrichtung von Von-VP nach Nach-VP')
INSERT INTO Verkehrsrichtung_SE VALUES ('G','Verkehrsrichtung von Nach-VP nach Von-VP')
INSERT INTO Verkehrsrichtung_SE VALUES ('B','In beiden Richtungen')

   END_SQL
*)

ENTITY Strassenelement_abstrakt
ABSTRACT SUPERTYPE OF (ONEOF(Strassenelement,Strassenelement_Symbol));
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Strassenelement_Symbol
SUBTYPE OF (Strassenelement_abstrakt);
--- Attribute :
   Kennung                       : STRING(24);
--- Relationen :
END_ENTITY;

ENTITY Strassenelement_auf_Abschnitt_oder_Ast
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
--- Relationen :
INVERSE
   zu_Strassenelement            : SET [1:?] OF Strassenelement
                                       FOR stationiert_auf_AoA;
END_ENTITY;

ENTITY Verbindungspunkt
SUBTYPE OF (ASB_Objekt,historisches_Objekt,Punktobjekt_Modell,Verbindungspunkt_abstrakt);
--- Attribute :
   Nummerierungsbezirk           : TK25_Blattnummer;
   Nummer                        : INTEGER;
   GDF_ID                        : OPTIONAL STRING;
   -- GDF_ID benötigt man zusätzlich, wenn man persistente GDF-Identifier unterstützen will
--- Relationen :
   in_Nullpunkt                  : OPTIONAL SET[1:?] OF Nullpunkt_abstrakt; (* D *) (* O *)
   Beginn_von_Strassenelement    : OPTIONAL SET [1:?] OF Strassenelement_abstrakt; (* D *) (* O *)
   Ende_von_Strassenelement      : OPTIONAL SET [1:?] OF Strassenelement_abstrakt; (* D *) (* O *)
WHERE
   Beginn_oder_Ende              : ( EXISTS(Beginn_von_Strassenelement)
                                   OR EXISTS(Ende_von_Strassenelement) );
END_ENTITY;

ENTITY Verbindungspunkt_abstrakt
ABSTRACT SUPERTYPE OF (ONEOF(Verbindungspunkt,Verbindungspunkt_Symbol));
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Verbindungspunkt_Symbol
SUBTYPE OF (Verbindungspunkt_abstrakt);
--- Attribute :
   Kennung                       : STRING(12);
--- Relationen :
END_ENTITY;

ENTITY Verbotene_Fahrbeziehung
SUBTYPE OF (ASB_Objekt,historisches_Objekt);
--- Attribute :
--- Relationen :
   von_Strassenelement           : SET [1:?] OF Strassenelement_abstrakt; (* D *) (* O *)
   ueber_Strassenelement         : OPTIONAL SET [1:?] OF Strassenelement_abstrakt; (* D *) (* O *)
   nach_Strassenelement          : SET [1:?] OF Strassenelement_abstrakt; (* D *) (* O *)
END_ENTITY;

ENTITY Kilometrierung
SUPERTYPE OF (Betriebskilometer)
SUBTYPE OF (ASB_Objekt,Punktobjekt_hist);
--- Attribute :
   Kilometrierung                : Kilometer;
   Bezugsrichtung                : OPTIONAL Bezugsrichtung;
   historischer_Strassenname     : OPTIONAL STRING(14);
--- Relationen :
END_ENTITY;

ENTITY Betriebskilometer
SUBTYPE OF (Kilometrierung);
   (* ERBEN UP *)
   (* ERSETZEN Kilometrierung *)
--- Attribute :
--- Relationen :
   in_Block                      : SET [1:?] OF Block; (* D *)
INVERSE
   ist_Anfang_von_Block          : SET [1:?] OF Block
                                       FOR Betriebskilometer_Anfang; (* O *)
   ist_Ende_von_Block            : SET [1:?] OF Block
                                       FOR Betriebskilometer_Ende; (* O *)
   von_Angaben_zum_Unfallort     : SET [0:?] OF Angaben_zum_Unfallort
                                             FOR bei_Betriebskilometer;
   von_Sachverhalt               : SET [0:?] OF Sachverhalt
                                       FOR hat_Betriebskilometer;
END_ENTITY;

ENTITY Block
SUBTYPE OF (ASB_Objekt,Streckenobjekt_hist);
--- Attribute :
   Blocknummer                   : STRING(8);
--- Relationen :
   auf_Strasse                   : SET [1:?] OF Strasse_abstrakt; (* D *) (* O *)
   Betriebskilometer_Anfang      : OPTIONAL SET [1:?] OF Betriebskilometer; (* O *)
   Betriebskilometer_Ende        : OPTIONAL SET [1:?] OF Betriebskilometer; (* O *)
INVERSE
   enthaelt_Betriebskilometer    : SET [0:?] OF Betriebskilometer FOR in_Block;
END_ENTITY;

ENTITY Entwurfselement
ABSTRACT SUPERTYPE OF (ONEOF(Entwurfselement_Kreisbogen,
                       Entwurfselement_Klothoide,Entwurfselement_Gerade))
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
   Richtungsw_Tangente_am_Anfang : OPTIONAL Winkel;
--- Relationen :
   beginnt_bei_Vermessungspunkt  : INTEGER; -- Verm_Punkt;
   endet_bei_Vermessungspunkt    : INTEGER; -- Verm_Punkt;
END_ENTITY;

ENTITY Entwurfselement_Kreisbogen
SUBTYPE OF (Entwurfselement);
--- Attribute :
   Radius                        : Meter;
--- Relationen :
END_ENTITY;

ENTITY Entwurfselement_Klothoide
SUBTYPE OF (Entwurfselement);
--- Attribute :
   Radius_am_Anfang              : Meter;
   Radius_am_Ende                : OPTIONAL Meter;
   Parameter                     : Meter;
--- Relationen :
END_ENTITY;

ENTITY Entwurfselement_Gerade
SUBTYPE OF (Entwurfselement);
--- Attribute :
--- Relationen :
END_ENTITY;

END_SCHEMA; -- Strassennetz
SCHEMA Administration;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073
Aufweichung von Relationen gemäß N0078
Einführung des Schemas Liegenschaftsverwaltung gemäß N0080

09.09.2005 - 1.010 (1.010)
Anpassung an ASB-ING, Stand 2004
Schema Arbeitsstelle_an_Strassen erstellt

29.06.2004 - 1.006 (1.009)
Anpassung an ASB-Netzdaten, Stand September 2002

03.09.2003 - 1.005 (1.008)
Anbindung des Schemas Kostenberechnung
Korrektur der historischen Gültigkeitsdaten (SQL)

31.05.2002 - 1.004 (1.007)
Strassenbaudienststelle Subtyp von UI_Partner

12.09.2001 - 1.003 (1.004)
Referenzen zum Schema Unfall angepasst
Polizeidienststelle ergänzt

11.12.2000 - 1.002 (1.002)
Symbolische Verweise integriert für
Teilbauwerk, Bauwerk, Verwaltungsbezirk,
Strassenbaudienststelle, Strasse

29.10.2000 - 1.001 (1.001)
passive Versionierung durch Integration der
Schemata allgemeine Geometrieobjekte und Grunderwerb

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Strasse_abstrakt,Streckenobjekt_hist,Bereichsobjekt_hist,
                             Strasse,Netzknoten,Abschnitt_oder_Ast,Nullpunkt,
                             Strassenelement,Verbindungspunkt,Nullpunktsort,
                             BAB_Knotennummer,Kilometrierung,Block,Strecke,
                             Teilnetz,Route,Netzbereich,Teilnetz_ASB,
                             Verbotene_Fahrbeziehung);

REFERENCE FROM Bauwerke (Teilbauwerk_abstrakt,Bauwerk_abstrakt,Info_Strasse);

REFERENCE FROM Dynamische_Beschilderung (verwaltungstechn_Zuordnung_dyn);

REFERENCE FROM Historisierung (historisches_Objekt,Ereignis);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Datum,Dokument_abstrakt);OKSTRA_Schluesseltabelle,
                                   Datum,Dokument_abstrakt);

REFERENCE FROM Geometrieschema (Flaechenobjekt_Modell);

REFERENCE FROM Umfeldmessstelle (verwaltungstechn_Zuordnung_UM);

REFERENCE FROM Automatische_Dauerzaehlstelle (verwaltungstechn_Zuordnung_DZ);

REFERENCE FROM Unfall (Angaben_zum_Unfallort,Unfallfahrzeug,DV_Merkmale_StaLa);

REFERENCE FROM Manuelle_Zaehlstelle (verwaltungstechn_Zuordnung_MZ);

REFERENCE FROM Vermessungspunkt (Vermessungspunkt);

REFERENCE FROM Kataster (Gemarkung);

REFERENCE FROM Kostenberechnung (Projektkennzeichnung_Kostra);

REFERENCE FROM Oekologie (Baumassnahme);

REFERENCE FROM MELVER (administrative_Angaben_MELVER,Ang_zum_Auftragnehmer_MELVER);

REFERENCE FROM Kreuzungen (Kreuzung);

REFERENCE FROM Arbeitsstelle_an_Strassen (zust_Polizeidienstst_Arbeitsst,
                                          Durchfuehrender_Arbeitsstelle);

REFERENCE FROM Liegenschaftsverwaltung (LV_Behoerde);

ENTITY ASB_Objekt
ABSTRACT SUPERTYPE OF (ONEOF(Strasse,Netzknoten,Abschnitt_oder_Ast,Nullpunkt,
                             Strassenelement,Verbindungspunkt,Nullpunktsort,
                             BAB_Knotennummer,Kilometrierung,Block,Strecke,
                             Teilnetz,Route,Netzbereich,Verbotene_Fahrbeziehung,Teilnetz_ASB,
                             Verwaltungsbezirk,Strassenbaudienststelle,
                             Baulast,Baulasttraeger,UI_Partner,UI_Vereinbarung,Ereignis,
                             Kreuzung))
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
   Bezeichnung_lang              : OPTIONAL STRING(30);
   Bezeichnung_kurz              : OPTIONAL STRING(10);
   Erfassungsdatum               : OPTIONAL Datum;
   Systemdatum                   : OPTIONAL Datum;
   Textfeld                      : OPTIONAL STRING;
--- Relationen :
   Fotodokument                  : OPTIONAL SET [1:?] OF Dokument_abstrakt;
END_ENTITY;

ENTITY Verwaltungsbezirk         -- ASB 97, 4.2 & 9.2
ABSTRACT SUPERTYPE OF (ONEOF(Staat,Bundesland,Regierungsbezirk,
                             Kreis_kreisfreie_Stadt,Gemeindebezirk,Ortsteil))
SUBTYPE OF (ASB_Objekt,Bereichsobjekt_hist,Flaechenobjekt_Modell,Baulasttraeger,
            Verwaltungsbezirk_abstrakt,UI_Partner);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
   von_verwaltungstechn_Zuordnung: OPTIONAL SET [1:?] OF verwaltungstechn_Zuordnung; (* O *)
   von_Strasse                   : OPTIONAL SET [1:?] OF Strasse_abstrakt; (* O *)
   von_Unfallort                 : OPTIONAL SET [1:?] OF Angaben_zum_Unfallort;
   enthaelt_Vermessungspunkt     : OPTIONAL SET [1:?] OF Vermessungspunkt;
   hat_gemeldetes_Kfz            : OPTIONAL SET [1:?] OF Unfallfahrzeug;
   zu_DV_Merkmalen_StaLa         : OPTIONAL SET [1:?] OF DV_Merkmale_StaLa;
   zu_Projektkennzeichnung_Kostra: OPTIONAL SET [1:?] OF Projektkennzeichnung_Kostra;
   zu_Baumassnahme               : OPTIONAL SET [1:?] OF Baumassnahme;
   ist_Bundesl_z_admin_Ang_MELVER: OPTIONAL SET [1:?] OF administrative_Angaben_MELVER;
   ist_Kr_Gem_z_admin_Ang_MELVER : OPTIONAL SET [1:?] OF administrative_Angaben_MELVER;
   hat_Auftragn_d_Baul_MELVER    : OPTIONAL SET [1:?] OF Ang_zum_Auftragnehmer_MELVER;
END_ENTITY;

ENTITY Verwaltungsbezirk_abstrakt         -- ASB 97, 4.2 & 9.2
ABSTRACT SUPERTYPE OF (ONEOF(Verwaltungsbezirk,Verwaltungsbezirk_Symbol));
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Verwaltungsbezirk_Symbol         -- ASB 97, 4.2 & 9.2
SUBTYPE OF (Verwaltungsbezirk_abstrakt);
--- Attribute :
   Kennung                       : STRING(11);
--- Relationen :
END_ENTITY;

ENTITY Staat
SUBTYPE OF (Verwaltungsbezirk);
--- Attribute :
   Kennung_Staat                 : STRING(2);
--- Relationen :
   enthaelt_Bundeslaender        : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* O *)
END_ENTITY;

ENTITY Bundesland
SUBTYPE OF (Verwaltungsbezirk);
--- Attribute :
   Kennung_Bundesland            : STRING(2) FIXED;
--- Relationen :
   ist_in_Staat                  : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
   enthaelt_Regierungsbezirk     : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* O *)
END_ENTITY;

ENTITY Regierungsbezirk
SUBTYPE OF (Verwaltungsbezirk);
--- Attribute :
   Kennung_Regierungsbezirk      : STRING(3) FIXED;
--- Relationen :
   ist_in_Bundesland             : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *) (* O *)
   enthaelt_Kreis_kreisfr_Stadt  : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* O *)
END_ENTITY;

ENTITY Kreis_kreisfreie_Stadt
SUBTYPE OF (Verwaltungsbezirk);
--- Attribute :
   Kennung_Kreis                 : STRING(5) FIXED;
   Kreisart                      : OPTIONAL Kreisart;
--- Relationen :
   ist_in_Regierungsbezirk       : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *) (* O *)
   enthaelt_Gemeindebezirk       : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* O *)
   hat_Kreisverwaltung           : SET [1:?] OF Kreisverwaltung; (* D *)
   enthaelt_Gemarkung            : OPTIONAL SET [1:?] OF Gemarkung;
END_ENTITY;

ENTITY Kreisart;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Kreisart VALUES ('S','Stadtkreis')
INSERT INTO Kreisart VALUES ('L','Landkreis')

   END_SQL
*)

ENTITY Gemeindebezirk
SUBTYPE OF (Verwaltungsbezirk);
--- Attribute :
   Kennung_Gemeinde              : STRING(8) FIXED;
   Baulast_Strassenklasse        : OPTIONAL Baulast_Strassenklasse;
   Gemeinde_Funktion             : OPTIONAL Gemeinde_Funktion;
--- Relationen :
   ist_in_Kreis_kreisfreie_Stadt : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *) (* O *)
   enthaelt_Ortsteil             : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* O *)
   hat_Gemeindeverwaltung        : SET [1:?] OF Gemeindeverwaltung; (* D *)
   enthaelt_Gemarkung            : OPTIONAL SET [1:?] OF Gemarkung;
END_ENTITY;

ENTITY Baulast_Strassenklasse;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Baulast_Strassenklasse VALUES ('B','Baulast in OD für B-, L/S- und K-Straßen')
INSERT INTO Baulast_Strassenklasse VALUES ('L','Baulast in OD für L/S- und K-Straßen')
INSERT INTO Baulast_Strassenklasse VALUES ('K','Baulast in OD für K-Straßen')
INSERT INTO Baulast_Strassenklasse VALUES ('F','Baulast in OD und FS für K-Straßen')

   END_SQL
*)

ENTITY Gemeinde_Funktion;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);

   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Gemeinde_Funktion VALUES ('O','Oberzentrum')
INSERT INTO Gemeinde_Funktion VALUES ('M','Mittelzentrum')
INSERT INTO Gemeinde_Funktion VALUES ('U','Unterzentrum')
INSERT INTO Gemeinde_Funktion VALUES ('G','Grundzentrum')

   END_SQL
*)

ENTITY Ortsteil
SUBTYPE OF (Verwaltungsbezirk);
--- Attribute :
   Kennung_Ortsteil              : STRING(11) FIXED;
--- Relationen :
   ist_in_Gemeindebezirk         : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *) (* O *)
END_ENTITY;

ENTITY Strassenbaudienststelle   -- ASB 97, 4.1 & 9.1
ABSTRACT SUPERTYPE OF (ONEOF(Land_Ministerium,Regierungspraesidium_Landesamt,
                             Amt,Meisterei,Kreisverwaltung,Gemeindeverwaltung))
SUBTYPE OF (ASB_Objekt,Bereichsobjekt_hist,Strassenbaudienststelle_abstrakt,UI_Partner);
   (* ARTEN J *)
--- Attribute :
   Strasse                       : OPTIONAL STRING(30);
   Postleitzahl                  : OPTIONAL STRING(6);
   Ort                           : OPTIONAL STRING(30);
   Telefon                       : OPTIONAL STRING(20);
   Fax                           : OPTIONAL STRING(20);
   E_Mail                        : OPTIONAL STRING(30);
--- Relationen :
   von_Teilbauwerk               : OPTIONAL SET [1:?] OF Teilbauwerk_abstrakt; (* O *)
   von_Bauwerk                   : OPTIONAL SET [1:?] OF Bauwerk_abstrakt; (* O *)
   ist_Amt_fuer                  : OPTIONAL SET [1:?] OF Info_Strasse;
   ist_Meisterei_fuer            : OPTIONAL SET [1:?] OF Info_Strasse;
   von_verwaltungstechn_Zuordnung: OPTIONAL SET [1:?] OF verwaltungstechn_Zuordnung; (* O *)
   hat_Ereignis                  : OPTIONAL SET [1:?] OF Ereignis; (* O *)
   von_Unfallort                 : OPTIONAL SET [1:?] OF Angaben_zum_Unfallort;
   zu_administrative_Ang_MELVER  : OPTIONAL SET [1:?] OF administrative_Angaben_MELVER;
   zu_durchfuehr_Arbeitsstelle   : OPTIONAL SET [1:?] OF Durchfuehrender_Arbeitsstelle;
   ist_LV_Behoerde               : OPTIONAL SET [1:?] OF LV_Behoerde;
END_ENTITY;

ENTITY Strassenbaudienststelle_abstrakt   -- ASB 97, 4.1 & 9.1
ABSTRACT SUPERTYPE OF (ONEOF(Strassenbaudienststelle,Strassenbaudienststelle_Symbol));
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Strassenbaudienststelle_Symbol   -- ASB 97, 4.1 & 9.1
SUBTYPE OF (Strassenbaudienststelle_abstrakt);
--- Attribute :
   Kennung                       : STRING(8);
--- Relationen :
END_ENTITY;

ENTITY Land_Ministerium
SUBTYPE OF (Strassenbaudienststelle);
--- Attribute :
   Schluessel_Land_Ministerium   : STRING(2) FIXED;
--- Relationen :
   ist_vorgesetzt                : OPTIONAL SET [1:?] OF Strassenbaudienststelle_abstrakt; (* O *)
END_ENTITY;

ENTITY Regierungspraesidium_Landesamt
SUBTYPE OF (Strassenbaudienststelle);
--- Attribute :
   Schluessel_Regpraes_Landesamt : STRING(3) FIXED;
--- Relationen :
   untersteht_Land_Ministerium   : OPTIONAL SET [1:?] OF Strassenbaudienststelle_abstrakt; (* D *) (* O *)
   ist_vorgesetzt                : OPTIONAL SET [1:?] OF Strassenbaudienststelle_abstrakt; (* O *)
END_ENTITY;

ENTITY Amt
SUBTYPE OF (Strassenbaudienststelle);
--- Attribute :
   Schluessel_Amt                : STRING(4) FIXED;
--- Relationen :
   untersteht_Regierungspr_Ldsamt: OPTIONAL SET [1:?] OF Strassenbaudienststelle_abstrakt; (* D *) (* O *)
   ist_vorgesetzt                : OPTIONAL SET [1:?] OF Strassenbaudienststelle_abstrakt; (* O *)
END_ENTITY;

ENTITY Meisterei
SUBTYPE OF (Strassenbaudienststelle);
--- Attribute :
   Schluessel_Meisterei          : STRING(6) FIXED;
--- Relationen :
   untersteht_Amt                : OPTIONAL SET [1:?] OF Strassenbaudienststelle_abstrakt; (* D *) (* O *)
END_ENTITY;

ENTITY Kreisverwaltung
SUBTYPE OF (Strassenbaudienststelle);
--- Attribute :
--- Relationen :
INVERSE
   von_Kreis_kreisfreie_Stadt    : SET [1:?] OF Kreis_kreisfreie_Stadt
                                             FOR hat_Kreisverwaltung; (* D *)
END_ENTITY;

ENTITY Gemeindeverwaltung
SUBTYPE OF (Strassenbaudienststelle);
--- Attribute :
   Baulast_Strassenklasse        : OPTIONAL STRING(1);
   Gemeindefunktion              : OPTIONAL STRING(1);
--- Relationen :
INVERSE
   von_Gemeindebezirk            : SET [1:?] OF Gemeindebezirk
                                       FOR hat_Gemeindeverwaltung; (* D *)
END_ENTITY;

ENTITY sonstige_UI_Partner
SUBTYPE OF (UI_Partner);
--- Attribute :
   Kennzeichen                   : OPTIONAL STRING(6);
--- Relationen :
END_ENTITY;

ENTITY UI_Vereinbarung           -- ASB 97, 4.6
SUBTYPE OF (ASB_Objekt,Bereichsobjekt_hist);
--- Attribute :
   Vertragsdatum                 : OPTIONAL Datum;
   Art_der_Vereinbarung          : OPTIONAL Art_UI_Vereinbarung;
--- Relationen :
   mit_UI_Partner                : SET [1:?] OF UI_Partner; (* D *)
   Vertrag                       : OPTIONAL SET [1:?] OF Dokument_abstrakt;
END_ENTITY;

ENTITY Art_UI_Vereinbarung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_UI_Vereinbarung VALUES (1,'UI-Vereinbarung')
INSERT INTO Art_UI_Vereinbarung VALUES (2,'UA-Vereinbarung')
INSERT INTO Art_UI_Vereinbarung VALUES (3,'nur Sommerdienst')
INSERT INTO Art_UI_Vereinbarung VALUES (4,'nur Winterdienst')

   END_SQL
*)

ENTITY UI_Partner
ABSTRACT SUPERTYPE OF (ONEOF(Strassenbaudienststelle,sonstige_UI_Partner,
                             Verwaltungsbezirk))
SUBTYPE OF (ASB_Objekt,historisches_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
   fuer_Teilbauwerk              : SET [0:?] OF Teilbauwerk_abstrakt;
INVERSE
   hat_UI_Vereinbarung           : SET [0:?] OF UI_Vereinbarung
                                             FOR mit_UI_Partner;
   zu_IS_Baulasttraeger          : SET [0:?] OF Info_Strasse
                                             FOR Baulasttraeger_Befestigung;
   zu_IS_UI_Pflicht              : SET [0:?] OF Info_Strasse
                                             FOR UI_Pflicht_Verkehrsflaeche;
END_ENTITY;

ENTITY Baulast
SUBTYPE OF (ASB_Objekt,Bereichsobjekt_hist);
--- Attribute :
   Art_Baulast                   : OPTIONAL Art_Baulast;
--- Relationen :
   von_Baulasttraeger            : Baulasttraeger;
END_ENTITY;

ENTITY Art_Baulast;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_Baulast VALUES ('H','Hauptbaulast')
INSERT INTO Art_Baulast VALUES ('G','Gemeindebaulast')
INSERT INTO Art_Baulast VALUES ('D','Baulast Dritter')

   END_SQL
*)

ENTITY Baulasttraeger            -- ASB 97, 4.4
ABSTRACT SUPERTYPE OF (ONEOF(Verwaltungsbezirk,Baulast_Dritter))
SUBTYPE OF (ASB_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
   Verfuegung                    : OPTIONAL SET [1:?] OF Dokument_abstrakt;
INVERSE
   hat_Baulast                   : SET [0:?] OF Baulast FOR von_Baulasttraeger;
END_ENTITY;

ENTITY Baulast_Dritter
SUBTYPE OF (Baulasttraeger);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
END_ENTITY;

ENTITY OD_FS
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
   rechtsgueltig_ab              : OPTIONAL Datum;
--- Relationen :
   OD_FS                         : Tab_OD_FS;
   Verfuegung                    : OPTIONAL SET [1:?] OF Dokument_abstrakt;
INVERSE
   von_Unfallort                 : SET [0:?] OF Angaben_zum_Unfallort
                                             FOR Ortslage_gemaess_SIB;
END_ENTITY;

ENTITY Tab_OD_FS;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tab_OD_FS VALUES ('O','Ortsdurchfahrt')
INSERT INTO Tab_OD_FS VALUES ('V','Verknüpfungsbereich')
INSERT INTO Tab_OD_FS VALUES ('E','Erschließungsbereich')
INSERT INTO Tab_OD_FS VALUES ('F','Freie Strecke')

   END_SQL
*)

ENTITY Widmung
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
   rechtsgueltig_ab              : Datum;
--- Relationen :
   Widmung                       : Tab_Widmung;
   Verfuegung                    : OPTIONAL SET [1:?] OF Dokument_abstrakt;
END_ENTITY;

ENTITY Tab_Widmung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tab_Widmung VALUES (0,'nicht gewidmet')
INSERT INTO Tab_Widmung VALUES (1,'gewidmet')
INSERT INTO Tab_Widmung VALUES (2,'gewidmet, wird umgestuft')

   END_SQL
*)

ENTITY verwaltungstechn_Zuordnung
ABSTRACT SUPERTYPE OF (ONEOF(verwaltungstechn_Zuordnung_UM,verwaltungstechn_Zuordnung_DZ,
                             verwaltungstechn_Zuordnung_MZ,verwaltungstechn_Zuordnung_dyn))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Strassenbaudienststelle   : SET [1:?] OF Strassenbaudienststelle_abstrakt; (* OD *)
   hat_Verwaltungsbezirk         : SET [1:?] OF Verwaltungsbezirk_abstrakt; (* OD *)
END_ENTITY;

ENTITY Polizeidienststelle
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Behoerdenkennung              : STRING(6);
--- Relationen :
INVERSE
   zu_Unfallort                  : SET [0:?] OF Angaben_zum_Unfallort
                                             FOR bei_Polizeidienststelle;
   zu_zust_Polizei_Arbeitsst     : SET [0:?] OF zust_Polizeidienstst_Arbeitsst
                                             FOR hat_Dienststelle;
END_ENTITY;

ENTITY Art_Baulasttraeger;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_Baulasttraeger VALUES (1,'Staat')
INSERT INTO Art_Baulasttraeger VALUES (2,'Bundesland')
INSERT INTO Art_Baulasttraeger VALUES (3,'Regierungsbezirk')
INSERT INTO Art_Baulasttraeger VALUES (4,'Kreis_kreisfreie_Stadt')
INSERT INTO Art_Baulasttraeger VALUES (5,'Gemeindebezirk')
INSERT INTO Art_Baulasttraeger VALUES (6,'Ortsteil')
INSERT INTO Art_Baulasttraeger VALUES (7,'Dritter')

   END_SQL
*)

END_SCHEMA; -- Administration
SCHEMA Verkehr;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Anpassung an ASB-ING, Stand 2004
Einführung der Ganglinie

29.06.2004 - 1.003 (1.009)
Anpassung an ASB-Netzdaten, Stand September 2002

03.09.2003 - 1.002 (1.008)
Anbindung automatische Dauerzählstelle
Korrektur der historischen Gültigkeitsdaten (SQL)

31.05.2002 - 1.001 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Streckenobjekt_stat);

REFERENCE FROM Strassenzustandsdaten (ZEB_Objekt);

REFERENCE FROM Bauliche_Strasseneigenschaften (Querschnittstreifen);

REFERENCE FROM Bauwerke (Info_Strasse);

REFERENCE FROM Automatische_Dauerzaehlstelle (Detektoren_DZ);

REFERENCE FROM Verkehrsstaerke (DTV,Fahrzeugart,Ganglinie);

REFERENCE FROM Manuelle_Zaehlstelle (raeuml_Gueltigkeitsbereich_MZ);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Schluesseltabelle,Meter,Dezimeter,Tonnen,
                                   Stundenkilometer,Meter_ueber_NN,Zeitraum);

REFERENCE FROM Geometrieschema (Flaechenobjekt_Modell);

ENTITY Fahrstreifen_Nummer
SUBTYPE OF (Flaechenobjekt_Modell,historisches_Objekt);
--- Attribute :
   Fahrstreifennummer            : OPTIONAL INTEGER;
--- Relationen :
   auf_Querschnittstreifen       : SET [1:?] OF Querschnittstreifen; (* D *)
   hat_Verkehrsrichtung          : Verkehrsrichtung;
INVERSE
   von_Beschraenkung_verkehrlich : SET [0:?] OF Beschraenkung_verkehrlich
                                             FOR gilt_fuer_Fahrstreifen;
   von_Strassenbeschr_verkehrlich: SET [0:?] OF Strassenbeschreibung_verkehrl
                                             FOR gilt_fuer_Fahrstreifen;
   von_ZEB_Objekt                : SET [0:?] OF ZEB_Objekt
                                             FOR gilt_fuer_Fahrstreifen;
   zu_Detektoren_DZ              : SET [0:?] OF Detektoren_DZ
                                             FOR ist_Fahrstreifen_zugeordnet;
   zu_DTV                        : SET [0:?] OF DTV FOR fuer_Fahrstreifen;
   zu_Ganglinie                  : SET [0:?] OF Ganglinie FOR hat_Fahrstreifen;
END_ENTITY;

ENTITY Verkehrsrichtung;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Verkehrsrichtung VALUES ('B','Verkehr in beiden Richtungen')
INSERT INTO Verkehrsrichtung VALUES ('R','Einbahnverkehr in Stationierungsrichtung')
INSERT INTO Verkehrsrichtung VALUES ('G','Einbahnverkehr gegen Stationierungsrichtung')

   END_SQL
*)

ENTITY Anzahl_Fahrstreifen
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
   Fahrstreifen_Gegenrichtung    : OPTIONAL INTEGER;
   Fahrstreifen_Richtung         : OPTIONAL INTEGER;
--- Relationen :
INVERSE
   von_Info_Strasse              : SET [0:?] OF Info_Strasse
                                       FOR hat_Anzahl_Fahrstreifen;
   von_raeuml_Gueltigkeitsber_MZ : SET [0:?] OF raeuml_Gueltigkeitsbereich_MZ
                                       FOR ueberwiegende_Anzahl_Fahrstr;
END_ENTITY;

ENTITY Beschraenkung_verkehrlich
ABSTRACT SUPERTYPE OF (ONEOF(Insassen_min_Anzahl,max_Geschwindigkeit,max_Hoehe,
                             max_Breite,max_Laenge,max_Gewicht,max_Achsgewicht,
                             Ueberholverbot,Zugangsbeschraenkung,Gesperrt))
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
   im_Zeitraum                   : OPTIONAL Zeitraum;
--- Relationen :
   gilt_fuer_Verkehrsrichtung    : OPTIONAL SET [1:?] OF Verkehrsrichtung;
   gilt_fuer_Fahrzeugart         : OPTIONAL SET [1:?] OF Fahrzeugart;
   im_Zeitraum                   : OPTIONAL SET [1:?] OF Zeitraum; (* D *)
   gilt_fuer_Fahrstreifen        : OPTIONAL SET [1:?] OF Fahrstreifen_Nummer;
END_ENTITY;

ENTITY Insassen_min_Anzahl
SUBTYPE OF (Beschraenkung_verkehrlich);
--- Attribute :
   Anzahl_Insassen               : INTEGER;
--- Relationen :
END_ENTITY;

ENTITY Ueberholverbot
SUBTYPE OF (Beschraenkung_verkehrlich);
--- Attribute :
   Ueberholverbot                : BOOLEAN;
--- Relationen :
END_ENTITY;

ENTITY max_Hoehe
SUBTYPE OF (Beschraenkung_verkehrlich,historisches_Objekt);
--- Attribute :
   Fahrzeughoehe                 : Dezimeter;
--- Relationen :
END_ENTITY;

ENTITY max_Breite
SUBTYPE OF (Beschraenkung_verkehrlich);
--- Attribute :
   Fahrzeugbreite                : Dezimeter;
--- Relationen :
END_ENTITY;

ENTITY max_Laenge
SUBTYPE OF (Beschraenkung_verkehrlich);
--- Attribute :
   max_Laenge                    : Meter;
--- Relationen :
END_ENTITY;

ENTITY max_Gewicht
SUBTYPE OF (Beschraenkung_verkehrlich);
--- Attribute :
   max_Fahrzeuggewicht           : Tonnen;
--- Relationen :
END_ENTITY;

ENTITY max_Achsgewicht
SUBTYPE OF (Beschraenkung_verkehrlich);
--- Attribute :
   max_Achsgewicht               : Tonnen;
--- Relationen :
END_ENTITY;

ENTITY max_Geschwindigkeit
SUBTYPE OF (Beschraenkung_verkehrlich);
--- Attribute :
   max_kmh                       : Stundenkilometer;
--- Relationen :
END_ENTITY;

ENTITY Zugangsbeschraenkung
SUBTYPE OF (Beschraenkung_verkehrlich);
--- Attribute :
   Zugangsbeschraenkung          : BOOLEAN;
--- Relationen :
END_ENTITY;

ENTITY Gesperrt
SUBTYPE OF (Beschraenkung_verkehrlich);
--- Attribute :
   Sperrung                      : BOOLEAN;
--- Relationen :
END_ENTITY;

ENTITY Strassenbeschreibung_verkehrl
ABSTRACT SUPERTYPE OF (ONEOF(Fkt_d_Verb_im_Knotenpktber,Bergpass,
                       Verkehrsbedeutung,Spur_fuer_Rettungsfahrzeuge,
                       Strassenfunktion,Aussichtswert,gebuehrenpflichtig,
                       Staugefahr,Durchschnittsgeschwindigkeit))
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
   im_Zeitraum                   : OPTIONAL Zeitraum;
--- Relationen :
   gilt_fuer_Verkehrsrichtung    : OPTIONAL SET [1:?] OF Verkehrsrichtung;
   gilt_fuer_Fahrzeugart         : OPTIONAL SET [1:?] OF Fahrzeugart;
   im_Zeitraum                   : OPTIONAL SET [1:?] OF Zeitraum; (* D *)
   gilt_fuer_Fahrstreifen        : OPTIONAL SET [1:?] OF Fahrstreifen_Nummer;
END_ENTITY;

ENTITY Fkt_d_Verb_im_Knotenpktber
SUBTYPE OF (Strassenbeschreibung_verkehrl,historisches_Objekt);
--- Attribute :
   Funktion                      : Tab_Funktion;
--- Relationen :
END_ENTITY;

ENTITY Tab_Funktion;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(2) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(2) FIXED;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tab_Funktion VALUES ('01','Ausfahrt')
INSERT INTO Tab_Funktion VALUES ('02','Einfahrt')
INSERT INTO Tab_Funktion VALUES ('03','Parallelfahrbahn (baulich getrennt)')
INSERT INTO Tab_Funktion VALUES ('04','Verflechtungsspur')
INSERT INTO Tab_Funktion VALUES ('05','Verzögerungsspur')
INSERT INTO Tab_Funktion VALUES ('06','Beschleunigungsspur')

   END_SQL
*)

ENTITY Bergpass
SUBTYPE OF (Strassenbeschreibung_verkehrl);
--- Attribute :
   Hoehe_ueber_NN                : OPTIONAL Meter_ueber_NN;
   Anhaenger                     : OPTIONAL BOOLEAN;
--- Relationen :
END_ENTITY;

ENTITY Verkehrsbedeutung
SUBTYPE OF (Strassenbeschreibung_verkehrl);
--- Attribute :
   Verkehrsbedeutung             : STRING(30);
--- Relationen :
END_ENTITY;

ENTITY Spur_fuer_Rettungsfahrzeuge
SUBTYPE OF (Strassenbeschreibung_verkehrl);
--- Attribute :
   Spur_fuer_Rettungsfahrzeuge   : BOOLEAN;
--- Relationen :
END_ENTITY;

ENTITY Strassenfunktion
SUBTYPE OF (Strassenbeschreibung_verkehrl);
--- Attribute :
   Strassenfunktion              : STRING(80);
--- Relationen :
END_ENTITY;

ENTITY Aussichtswert
SUBTYPE OF (Strassenbeschreibung_verkehrl);
--- Attribute :
   Aussichtswert                 : BOOLEAN;
--- Relationen :
END_ENTITY;

ENTITY Staugefahr
SUBTYPE OF (Strassenbeschreibung_verkehrl);
--- Attribute :
   Staugefahr                    : BOOLEAN;
--- Relationen :
END_ENTITY;

ENTITY gebuehrenpflichtig
SUBTYPE OF (Strassenbeschreibung_verkehrl);
--- Attribute :
   Gebuehrenpflicht              : BOOLEAN;
--- Relationen :
END_ENTITY;

ENTITY Durchschnittsgeschwindigkeit
SUBTYPE OF (Strassenbeschreibung_verkehrl);
--- Attribute :
   km_h                          : Stundenkilometer;
--- Relationen :
END_ENTITY;

END_SCHEMA; -- Verkehr
SCHEMA Bauliche_Strasseneigenschaften;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Formale Versionierung

29.06.2004 - 1.004 (1.009)
Anpassung an ASB-Netzdaten, Stand September 2002
Verlegung der Kreuzungen in eigenes Schema

03.09.2003 - 1.003 (1.008)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr
Korrektur der historischen Gültigkeitsdaten (SQL)

31.05.2002 - 1.002 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

11.12.2000 - 1.001 (1.002)
Symbolische Verweise integriert für Teilbauwerk

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Punktobjekt_hist,Streckenobjekt_stat,
                             Streckenobjekt_hist,Bereichsobjekt_hist);

REFERENCE FROM Bauwerke (Teilbauwerk_abstrakt);

REFERENCE FROM Strassenzustandsdaten (ZEB_Objekt);

REFERENCE FROM Strassenausstattungen (Leitung);

REFERENCE FROM Verkehr (Fahrstreifen_Nummer);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Schluesseltabelle,Meter,Zentimeter,
                                   Millimeter,Tonnen,Datum,Prozent);

REFERENCE FROM Geometrieschema (Linienobjekt_Modell,Flaechenobjekt_Modell,
                                Volumenobjekt_Modell);

ENTITY Schicht
SUBTYPE OF (Streckenobjekt_hist,Volumenobjekt_Modell);
--- Attribute :
   maximale_Korngroesse          : OPTIONAL Millimeter;
   Einbaudatum                   : OPTIONAL Datum;
--- Relationen :
   beginnt_bei_Schichtbegrenzung : SET [1:?] OF Schichtbegrenzung; (* D *)
   endet_bei_Schichtbegrenzung   : SET [1:?] OF Schichtbegrenzung; (* D *)
   hat_Schichtart                : OPTIONAL SET [1:?] OF Schichtart; (* D *)
   hat_Schichtmaterial           : OPTIONAL SET [1:?] OF Schichtmaterial;
                                   (* D *)
   unter_Schicht                 : OPTIONAL SET [1:?] OF Schicht; (* D *)
INVERSE
   ueber_Schicht                 : SET [0:?] OF Schicht FOR unter_Schicht; (* D *)
                                   (* S 1 *)
END_ENTITY;

ENTITY Schichtbegrenzung
SUBTYPE OF (Punktobjekt_hist);
--- Attribute :
   Breite                        : OPTIONAL Meter;
   Achsabstand_Anfang            : OPTIONAL Meter;
   Dicke                         : OPTIONAL Zentimeter;
   Abstand_Planum                : OPTIONAL Millimeter;
--- Relationen :
INVERSE
   Beginn_von_Schicht            : SET [0:?] OF Schicht
                                             FOR beginnt_bei_Schichtbegrenzung;
   Ende_von_Schicht              : SET [0:?] OF Schicht
                                             FOR endet_bei_Schichtbegrenzung;
END_ENTITY;

ENTITY Schichtart
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Kennung_Schichtart            : OPTIONAL INTEGER;
   Kurztext                      : OPTIONAL STRING(18);
   Schichtbeschreibung           : OPTIONAL STRING(29);
--- Relationen :
INVERSE
   von_Schicht                   : SET [0:?] OF Schicht FOR hat_Schichtart;
END_ENTITY;

ENTITY Schichtmaterial
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Schichtmaterial_Kennung       : OPTIONAL INTEGER;
   Schichtmaterial_Kurzbezeichng : OPTIONAL STRING(18);
   Schichtmaterial_Beschreibung  : OPTIONAL STRING(29);
--- Relationen :
INVERSE
   von_Schicht                   : SET [0:?] OF Schicht
                                             FOR hat_Schichtmaterial;
END_ENTITY;

ENTITY Querschnittstreifen
SUBTYPE OF (Streckenobjekt_hist,Flaechenobjekt_Modell);
--- Attribute :
--- Relationen :
   beginnt_bei_Streifenbegrenzung: SET [1:?] OF Streifenbegrenzung; (* D *)
   endet_bei_Streifenbegrenzung  : SET [1:?] OF Streifenbegrenzung; (* D *)
   hat_Streifenart               : OPTIONAL SET [1:?] OF Streifenart; (* D *)
INVERSE
   in_ZEB_Objekt                 : SET [0:?] OF ZEB_Objekt
                                             FOR gilt_fuer_Querschnittstreifen;
   hat_Fahrstreifen              : SET [0:?] OF Fahrstreifen_Nummer
                                             FOR auf_Querschnittstreifen;
END_ENTITY;

ENTITY Streifenart
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Kennung                       : OPTIONAL INTEGER;
   Streifenart                   : OPTIONAL STRING(250);
--- Relationen :
INVERSE
   von_Querschnittstreifen       : SET [0:?] OF Querschnittstreifen
                                             FOR hat_Streifenart;
END_ENTITY;

ENTITY Streifenbegrenzung
SUBTYPE OF (Punktobjekt_hist,Linienobjekt_Modell);
--- Attribute :
   Streifenbreite                : OPTIONAL Meter;
--- Relationen :
INVERSE
   Beginn_von_Querschnittstreifen: SET [0:?] OF Querschnittstreifen
                                       FOR beginnt_bei_Streifenbegrenzung;
   Ende_von_Querschnittstreifen  : SET [0:?] OF Querschnittstreifen
                                       FOR endet_bei_Streifenbegrenzung;
END_ENTITY;

ENTITY Bauklasse_Oberbau
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
   Strassenoberbau               : OPTIONAL STRING(29);
--- Relationen :
END_ENTITY;

ENTITY Bauweise_Oberbau
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
   Oberbauweise                  : OPTIONAL STRING(29);
--- Relationen :
END_ENTITY;

ENTITY Regelquerschnitt
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
   Kennzeichen_Regelquerschnitt  : OPTIONAL STRING(10);
--- Relationen :
END_ENTITY;

ENTITY Bahnigkeit
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
   Kennzeichen_Bahnigkeit        : OPTIONAL Kennzeichen_Bahnigkeit;
--- Relationen :
END_ENTITY;

ENTITY Kennzeichen_Bahnigkeit;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Kennzeichen_Bahnigkeit VALUES (1,'einbahnig, Straße mit/ohne Gegenverkehr')
INSERT INTO Kennzeichen_Bahnigkeit VALUES (2,'zweibahnig, Straße mit baulich getrennten Richtungsfahrbahnen')

   END_SQL
*)

ENTITY Fahrbahnlaengsneigung
SUBTYPE OF (Streckenobjekt_hist,Flaechenobjekt_Modell);
--- Attribute :
   Steigung_Gefaelle             : OPTIONAL Prozent;
--- Relationen :
END_ENTITY;

ENTITY Fahrbahnquerneigung
SUBTYPE OF (Streckenobjekt_hist,Flaechenobjekt_Modell);
--- Attribute :
   Querneigung                   : OPTIONAL Prozent;
--- Relationen :
END_ENTITY;

ENTITY Fahrbahntrennung
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
   Art_der_Trennung              : OPTIONAL STRING(1);
--- Relationen :
END_ENTITY;

ENTITY Trassenbreite
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
   Trassenbreite                 : OPTIONAL Meter;
--- Relationen :
END_ENTITY;

ENTITY Fahrbahnbreite
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
   Fahrbahnbreite                : OPTIONAL Meter;
--- Relationen :
END_ENTITY;

ENTITY Fussweg
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Radweg
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Schutzzone
SUBTYPE OF (Bereichsobjekt_hist);
--- Attribute :
   Kennung_Schutzzone            : OPTIONAL STRING(1);
   Text_Schutzzone               : OPTIONAL STRING(29);
--- Relationen :
END_ENTITY;

ENTITY Hindernis
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
   passierbare_Hoehe             : OPTIONAL Millimeter;
   passierbare_Breite            : OPTIONAL Millimeter;
   Belastungsgrenzwert_Hindernis : OPTIONAL Tonnen;
   Laenge_des_Hindernisses       : OPTIONAL Meter;
   Hindernisart                  : OPTIONAL Hindernis_Art;
--- Relationen :
   ist_Bauwerk                   : OPTIONAL SET [1:?] OF Teilbauwerk_abstrakt; (* O *)
END_ENTITY;

ENTITY Hindernis_Art;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Hindernis_Art VALUES (1,'Tunnel')
INSERT INTO Hindernis_Art VALUES (2,'Brücken oder ähnliche Konstruktionen (z.B. Stadttor)')
INSERT INTO Hindernis_Art VALUES (3,'größere Konstruktionen neben der Fahrbahn (z.B. Häuser) sowie Masten und Mastenreihen')
INSERT INTO Hindernis_Art VALUES (4,'Fels, Steilböschung')
INSERT INTO Hindernis_Art VALUES (5,'Mauern, Zäune, Geländer')
INSERT INTO Hindernis_Art VALUES (6,'Bäume, Alleen')
INSERT INTO Hindernis_Art VALUES (7,'(kreuzende) Überspannungen (bei Elektrizitätsleitungen Achtung Lebensgefahr! Nicht messen!)')
INSERT INTO Hindernis_Art VALUES (8,'Rückbau wegen Geschwindigkeitsreduzierung')
INSERT INTO Hindernis_Art VALUES (9,'sonstige Hindernisse (z.B. Verkehrszeichen auf 2 Pfosten, Hydranten, Laderampen)')

   END_SQL
*)

ENTITY Durchlass
SUBTYPE OF (Punktobjekt_hist);
--- Attribute :
   Ueberdeckung                  : OPTIONAL Meter;
   Durchlasslaenge               : OPTIONAL Meter;
   Durchlassart                  : OPTIONAL STRING(30);
--- Relationen :
   hat_Baustoff                  : SET [1:?] OF Baustoff; (* D *)
   hat_Profil                    : SET [1:?] OF Profil; (* D *)
   hat_Leitung                   : OPTIONAL SET [1:?] OF Leitung;
END_ENTITY;

ENTITY Baustoff
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Material                      : OPTIONAL STRING(30);
--- Relationen :
INVERSE
   von_Durchlass                 : SET [0:?] OF Durchlass FOR hat_Baustoff;
   von_Leitung                   : SET [0:?] OF Leitung FOR hat_Baustoff;
END_ENTITY;

ENTITY Profil
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Profilform                    : OPTIONAL Profilform;
   Profilhoehe                   : OPTIONAL Zentimeter;
   Profilbreite                  : OPTIONAL Zentimeter;
--- Relationen :
INVERSE
   von_Durchlass                 : SET [0:?] OF Durchlass FOR hat_Profil;
   von_Leitung                   : SET [0:?] OF Leitung FOR hat_Profil;
END_ENTITY;

ENTITY Profilform;
   (* AUFZAEHLUNG J *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING(30);
END_ENTITY;

(* SQL :

INSERT INTO Profilform VALUES (1,'Kreisprofil')
INSERT INTO Profilform VALUES (2,'Eiprofil')
INSERT INTO Profilform VALUES (3,'Kastenprofil')
INSERT INTO Profilform VALUES (4,'Maulprofil')
INSERT INTO Profilform VALUES (5,'Haubenprofil')

   END_SQL
*)

END_SCHEMA; -- Bauliche_Strasseneigenschaften
SCHEMA Strassenausstattungen;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Formale Versionierung

29.06.2004 - 1.004 (1.009)
Dokument in Schema Allgemeine Objekte verlegt

03.09.2003 - 1.003 (1.008)
Korrektur der historischen Gültigkeitsdaten (SQL)

31.05.2002 - 1.002 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

07.03.2001 - 1.001 (1.003)
Korrektur der FOREIGN KEY Referenz für Leitung
von Strassenausstattung auf Ausstattung_und_Anlagen (SQL)

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Streckenobjekt_stat,Streckenobjekt_hist);

REFERENCE FROM Bauliche_Strasseneigenschaften (Baustoff,Durchlass,Profil);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Schluesseltabelle,Meter,Quadratmeter,Dokument_abstrakt);
                                   Dokument_abstrakt);

REFERENCE FROM Oekologie (Bewuchs);

ENTITY Ausstattung_und_Anlagen
ABSTRACT SUPERTYPE OF (ONEOF(Strassenausstattung,Nebenanlage,Rastanlage))
SUBTYPE OF (Streckenobjekt_hist);
   (* ARTEN J *)
   (* SAMMELN J *)
--- Attribute :
   Kennzeichen                   : OPTIONAL STRING(1);
   Beschreibungstext             : OPTIONAL STRING(30);
--- Relationen :
END_ENTITY;

ENTITY Strassenausstattung
ABSTRACT SUPERTYPE OF (ONEOF(Leitung,Markierung,Schutzplanke))
SUBTYPE OF (Ausstattung_und_Anlagen);
   (* SAMMELN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Nebenanlage
SUBTYPE OF (Ausstattung_und_Anlagen);
   (* SAMMELN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Rastanlage
ABSTRACT SUPERTYPE OF (ONEOF(Rastanlage_nicht_bew,Rastanlage_bew))
SUBTYPE OF (Ausstattung_und_Anlagen);
   (* SAMMELN J *)
--- Attribute :
--- Relationen :
INVERSE
   zu_Bewuchs                    : SET [0:?] OF Bewuchs
                                             FOR auf_Rastanlage;
END_ENTITY;

ENTITY Rastanlage_nicht_bew
SUBTYPE OF (Rastanlage);
   (* SAMMELN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Rastanlage_bew
SUPERTYPE OF (Nebenbetrieb)
SUBTYPE OF (Rastanlage);
   (* SAMMELN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Nebenbetrieb
SUBTYPE OF (Rastanlage_bew);
   (* SAMMELN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Leitung
SUBTYPE OF (Strassenausstattung);
--- Attribute :
--- Relationen :
   hat_Leitungsverlauf           : SET [1:?] OF Leitungsverlauf;
   hat_Profil                    : SET [1:?] OF Profil;
   hat_Leitungstraeger           : SET [1:?] OF Leitungstraeger; (* D *)
   hat_Leitungsart               : SET [1:?] OF Leitungsart; (* D *)
   hat_Baustoff                  : SET [1:?] OF Baustoff;
   hat_Dokument                  : SET [1:?] OF Dokument_abstrakt;
INVERSE
   durch_Durchlass               : SET [0:?] OF Durchlass FOR hat_Leitung;
   von_Art_der_Entwaesserung     : SET [0:?] OF Art_der_Entwaesserung
                                             FOR hat_Leitung;
END_ENTITY;

ENTITY Leitungsverlauf
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Leitungslage                  : OPTIONAL Meter;
--- Relationen :
INVERSE
   von_Leitung                   : SET [0:?] OF Leitung
                                             FOR hat_Leitungsverlauf;
END_ENTITY;

ENTITY Leitungstraeger
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Leitungstraeger_Kurzform      : OPTIONAL STRING(1);
   Leitungstraeger_Langform      : OPTIONAL STRING(29);
--- Relationen :
INVERSE
   von_Leitung                   : SET [0:?] OF Leitung
                                             FOR hat_Leitungstraeger;
END_ENTITY;

ENTITY Leitungsart
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Kennung_Leitungsart           : OPTIONAL STRING(1);
   Leitungsart_Langtext          : OPTIONAL STRING(29);
--- Relationen :
INVERSE
   von_Leitung                   : SET [0:?] OF Leitung FOR hat_Leitungsart;
END_ENTITY;

ENTITY Markierung
SUBTYPE OF (Strassenausstattung);
   (* SAMMELN J *)
--- Attribute :
   Ort_am_Fahrstreifen           : OPTIONAL Tab_Markierung;
--- Relationen :
END_ENTITY;

ENTITY Tab_Markierung;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tab_Markierung VALUES ('R','rechts')
INSERT INTO Tab_Markierung VALUES ('L','links')
INSERT INTO Tab_Markierung VALUES ('B','beidseitig')

   END_SQL
*)

ENTITY Schutzplanke
SUBTYPE OF (Strassenausstattung);
   (* SAMMELN J *)
--- Attribute :
   Lage_zum_Fahrstreifen         : OPTIONAL STRING(1);
   Plankenart                    : OPTIONAL STRING(30);
--- Relationen :
END_ENTITY;

ENTITY Strassenentwaesserung
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
--- Relationen :
   hat_entwaess_Fahrbahnflaeche  : SET [1:?] OF entwaesserte_Fahrbahnflaeche;
                                    (* D *)
   hat_Lage_Entwaesserung        : SET [1:?] OF Lage_Entwaesserung; (* D *)
   hat_Art_der_Entwaesserung     : SET [1:?] OF Art_der_Entwaesserung; (* D *)
   hat_Dokument                  : OPTIONAL SET [1:?] OF Dokument_abstrakt;
END_ENTITY;

ENTITY entwaesserte_Fahrbahnflaeche
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   entwaesserter_Fahrbahnteil    : OPTIONAL STRING(1);
   Flaeche                       : OPTIONAL Quadratmeter;
--- Relationen :
INVERSE
   von_Strassenentwaesserung     : SET [0:?] OF Strassenentwaesserung
                                             FOR hat_entwaess_Fahrbahnflaeche;
END_ENTITY;

ENTITY Lage_Entwaesserung
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Lage                          : OPTIONAL Lage;
   Einleitung                    : OPTIONAL Einleitung;
--- Relationen :
INVERSE
   zu_Strassenentwaesserung      : SET [0:?] OF Strassenentwaesserung
                                             FOR hat_Lage_Entwaesserung;
END_ENTITY;

ENTITY Lage;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Lage VALUES ('R','rechts der Straße')
INSERT INTO Lage VALUES ('L','links der Straße')
INSERT INTO Lage VALUES ('F','auf der Fahrbahn')

   END_SQL
*)

ENTITY Einleitung;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Einleitung VALUES ('P','punktförmige Einleitung')
INSERT INTO Einleitung VALUES ('S','Streckeneinleitung')

   END_SQL
*)

ENTITY Art_der_Entwaesserung
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Transporteinrichtung          : OPTIONAL STRING(40);
   Behandlung                    : OPTIONAL STRING(40);
   Ableitung                     : OPTIONAL STRING(40);
--- Relationen :
   hat_Leitung                   : OPTIONAL SET [1:?] OF Leitung;
INVERSE
   zu_Strassenentwaesserung      : SET [0:?] OF Strassenentwaesserung
                                             FOR hat_Art_der_Entwaesserung;
END_ENTITY;

END_SCHEMA; -- Strassenausstattungen
SCHEMA Strassenzustandsdaten;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Formale Versionierung

03.09.2003 - 1.003 (1.008)
Relationsrichtungen getauscht gemäß A0025

31.05.2002 - 1.002 (1.007)
Kürzung überlanger SQL-Bezeichner

29.11.2001 - 1.001 (1.006)
Überarbeitung der Zustandsdaten

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Streckenobjekt_stat);

REFERENCE FROM Verkehr (Fahrstreifen_Nummer,Verkehrsrichtung);

REFERENCE FROM Bauliche_Strasseneigenschaften (Querschnittstreifen);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Datum,Zeitraum);OKSTRA_Schluesseltabelle,
                                   Datum,Zeitraum);

ENTITY ZEB_Objekt
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
   ZEB_Objekt                    : OPTIONAL STRING(30);
   Objektnummer                  : OPTIONAL INTEGER;
--- Relationen :
   hat_Verkehrsrichtung          : Verkehrsrichtung;
   gilt_fuer_Querschnittstreifen : SET [1:?] OF Querschnittstreifen;
   gilt_fuer_Fahrstreifen        : SET [1:?] OF Fahrstreifen_Nummer;
   von_ZEB_Projekt               : SET [1:?] OF ZEB_Projekt;
   hat_Art_des_ZEB_Objektes      : SET [1:?] OF Art_des_ZEB_Objektes;
INVERSE
   hat_ZEB_Parameterwert         : SET [0:?] OF ZEB_Parameterwert
                                             FOR von_ZEB_Objekt;
END_ENTITY;

ENTITY ZEB_Projekt
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Kurzbezeichnung_ZEB_Kamp      : OPTIONAL STRING(8);
   ZEB_Projekt                   : OPTIONAL STRING(20);
   Hauptmessverfahren            : OPTIONAL STRING(20);
   Zweck                         : OPTIONAL STRING(100);
   Umfang                        : OPTIONAL STRING(200);
   hat_Zeitraum                  : Zeitraum;   
--- Relationen :
   hat_ZEB_Parameterliste        : ZEB_Parameterliste;
   hat_Zeitraum                  : SET [1:?] OF Zeitraum; (* D *)
   hat_ZEB_Ereignis              : SET [1:?] OF ZEB_Ereignis;
   hat_ZEB_Subjekt               : SET [1:?] OF ZEB_Subjekt;
INVERSE
   hat_ZEB_Objekt                : SET [0:?] OF ZEB_Objekt FOR von_ZEB_Projekt;
END_ENTITY;

ENTITY ZEB_Parameterwert
ABSTRACT SUPERTYPE OF (ONEOF(Wert_einer_Zustandsgroesse,Wert_eines_Zustandswertes,
                    Wert_eines_Teilwertes,Wert_eines_Gesamtwertes,Wert_eines_Rohdatums))
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
   (* SAMMELN J *)
--- Attribute :
   Wert                          : OPTIONAL STRING;
--- Relationen :
   von_ZEB_Objekt                : ZEB_Objekt;
   von_ZEB_Parameter             : ZEB_Parameter;
   von_ZEB_Ereignis              : ZEB_Ereignis;
END_ENTITY;

ENTITY Art_des_ZEB_Objektes
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Kurzbezeichnung_Objektart     : OPTIONAL STRING(8);
   ZEB_Objektart                 : OPTIONAL STRING(30);
--- Relationen :
INVERSE
   von_ZEB_Objekt                : SET [0:?] OF ZEB_Objekt
                                             FOR hat_Art_des_ZEB_Objektes;
END_ENTITY;

ENTITY Wert_einer_Zustandsgroesse
SUBTYPE OF (ZEB_Parameterwert);
   (* SAMMELN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Wert_eines_Zustandswertes
SUBTYPE OF (ZEB_Parameterwert);
   (* SAMMELN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Wert_eines_Teilwertes
SUBTYPE OF (ZEB_Parameterwert);
   (* SAMMELN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Wert_eines_Gesamtwertes
SUBTYPE OF (ZEB_Parameterwert);
   (* SAMMELN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Wert_eines_Rohdatums
SUBTYPE OF (ZEB_Parameterwert);
   (* SAMMELN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY ZEB_Parameter
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Kurzbezeichnung_Paramgroesse  : OPTIONAL STRING(8);
   Parametergroesse              : OPTIONAL STRING(30);
   Parameternummer               : OPTIONAL INTEGER;
   Einheit                       : OPTIONAL STRING(8);
   Art_ZEB_Parameter             : Art_ZEB_Parameter;
   Art_ZEB_Methode               : Art_ZEB_Methode;
--- Relationen :
   hat_ZEB_Dokument              : ZEB_Dokument;
INVERSE
   von_ZEB_Parameterliste        : SET [0:?] OF ZEB_Parameterliste
                                             FOR hat_ZEB_Parameter;
   hat_ZEB_Parameterwert         : SET [0:?] OF ZEB_Parameterwert
                                             FOR von_ZEB_Parameter;
WHERE
   einfach_in_ZEB_Parameterliste : VALUE_UNIQUE(von_ZEB_Parameterliste);
END_ENTITY;

ENTITY ZEB_Dokument
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Kurzbezeichnung_ZEB_Dokument  : OPTIONAL STRING(8);
   ZEB_Dokument                  : OPTIONAL STRING(20);
   Datum_der_Erstellung          : OPTIONAL Datum;
   Ersteller                     : OPTIONAL STRING(30);
   Art_des_Dokumentes            : OPTIONAL STRING(20);
--- Relationen :
INVERSE
   von_ZEB_Ereignis              : SET [0:?] OF ZEB_Ereignis
                                             FOR hat_ZEB_Dokument;
   von_ZEB_Parameter             : SET [0:?] OF ZEB_Parameter
                                             FOR hat_ZEB_Dokument;
END_ENTITY;

ENTITY ZEB_Ereignis
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Kurzbezeichnung_ZEB_Ereignis  : OPTIONAL STRING(8);
   ZEB_Ereignis                  : OPTIONAL STRING(20);
   hat_Zeitraum                  : Zeitraum;   
--- Relationen :
   hat_ZEB_Dokument              : OPTIONAL ZEB_Dokument;
   hat_Zeitraum                  : SET [1:?] OF Zeitraum; (* D *)
   hat_ZEB_Subjekt               : SET [1:?] OF ZEB_Subjekt;
INVERSE
   von_ZEB_Projekt               : SET [0:?] OF ZEB_Projekt
                                             FOR hat_ZEB_Ereignis;
   hat_ZEB_Parameterwert         : SET [1:?] OF ZEB_Parameterwert
                                             FOR von_ZEB_Ereignis;
END_ENTITY;

ENTITY ZEB_Erfasser
SUBTYPE OF (ZEB_Subjekt);
   (* SAMMELN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY ZEB_Bewerter
SUBTYPE OF (ZEB_Subjekt);
   (* SAMMELN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY ZEB_Veranlasser
SUBTYPE OF (ZEB_Subjekt);
   (* SAMMELN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY ZEB_Subjekt
ABSTRACT SUPERTYPE OF (ONEOF(ZEB_Erfasser,ZEB_Bewerter,ZEB_Veranlasser))
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
   (* SAMMELN J *)
--- Attribute :
   Kurzbezeichnung_Subjekt       : OPTIONAL STRING(8);
   Subjekt                       : OPTIONAL STRING(20);
   Adresse_Subjekt               : OPTIONAL STRING(100);
--- Relationen :
INVERSE
   von_ZEB_Ereignis              : SET [1:?] OF ZEB_Ereignis
                                             FOR hat_ZEB_Subjekt;
   von_ZEB_Projekt               : SET [0:?] OF ZEB_Projekt
                                             FOR hat_ZEB_Subjekt;
END_ENTITY;

ENTITY ZEB_Parameterliste
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Kurzbezeichnung_ZEB_Paramliste: OPTIONAL STRING(8);
   Bezeichnung_ZEB_Parameterliste: OPTIONAL STRING(20);
--- Relationen :
   hat_ZEB_Parameter             : SET [1:?] OF ZEB_Parameter;
INVERSE
   von_ZEB_Projekt               : SET [0:?] OF ZEB_Projekt
                                             FOR hat_ZEB_Parameterliste;
WHERE
   einfache_ZEB_Parameter        : VALUE_UNIQUE(hat_ZEB_Parameter);
END_ENTITY;


ENTITY Art_ZEB_Parameter;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING(20);
--- Relationen :
END_ENTITY;

(* SQL :

INSERT INTO Art_ZEB_Parameter VALUES (1,'Zustandsgroesse')
INSERT INTO Art_ZEB_Parameter VALUES (2,'Zustandswert')
INSERT INTO Art_ZEB_Parameter VALUES (3,'Teilwert')
INSERT INTO Art_ZEB_Parameter VALUES (4,'Gesamtwert')
INSERT INTO Art_ZEB_Parameter VALUES (5,'Rohdatum')

   END_SQL
*)

ENTITY Art_ZEB_Methode;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING(40);
--- Relationen :
END_ENTITY;

(* SQL :

INSERT INTO Art_ZEB_Methode VALUES (1,'Zustandsmessverfahren')
INSERT INTO Art_ZEB_Methode VALUES (2,'ZEB_visuell_sensit_Wahrnehmung')
INSERT INTO Art_ZEB_Methode VALUES (3,'Aggregationsmethode')
INSERT INTO Art_ZEB_Methode VALUES (4,'Normierungsmethode')
INSERT INTO Art_ZEB_Methode VALUES (5,'Kombinationsmethode')
INSERT INTO Art_ZEB_Methode VALUES (6,'Klassifizierungsmethode')

   END_SQL
*)

END_SCHEMA; -- Strassenzustandsdaten
SCHEMA Bauwerke;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Anpassung an ASB-ING, Stand 2004

29.06.2004 - 1.005 (1.009)
Verlegung der Kreuzungen in eigenes Schema

03.09.2003 - 1.004 (1.008)
Korrektur von Währungsangaben

31.05.2002 - 1.003 (1.007)
Überarbeitung gemäß Dokument N0031

12.09.2001 - 1.002 (1.004)
Änderung überlanger Bezeichner Strassenbaudienststelle_abstr
in Strassenbaudienstst_abstr (SQL)

11.12.2000 - 1.001 (1.002)
Symbolische Verweise integriert für
Teilbauwerk, Bauwerk, Strassenbaudienststelle

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Punktobjekt_hist,Punktobjekt_stat,
                             Streckenobjekt_stat,Betriebskilometer);

REFERENCE FROM Administration (Strassenbaudienststelle_abstrakt,UI_Partner,
                                Verwaltungsbezirk_abstrakt,TAB_OD_FS);

REFERENCE FROM Bauliche_Strasseneigenschaften (Hindernis);

REFERENCE FROM Verkehr (Anzahl_Fahrstreifen);

REFERENCE FROM Ingenieurbauwerke (Bauwerkseinzelheiten);

REFERENCE FROM Verkehrsstaerke (DTV_Basis,Anteil_am_DTV);

REFERENCE FROM Geometrieschema (Punktobjekt_Modell);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Datum,Jahr,Meter,Millimeter,
                           Quadratmeter,Zentimeter,Prozent,Tonnen,Gon,
                           Kilonewton,Kilonewton_pro_Quadratmeter,Kilowatt,
                           Newton_pro_Quadratmillimeter,cd_pro_Quadratmeter,
                           Kilogramm_pro_Quadratmeter,Lux,Dauer,
                           Waehrungsbetrag,Mikrometer,Quadratmillimeter,
                           Monat,Grad_Celsius,Kilogramm_pro_Kubikmeter,
                           Stundenkilometer,Objekt_mit_ID);

REFERENCE FROM Kreuzungen (Kreuzung_Strasse_Weg);

ENTITY Bauwerk
SUBTYPE OF (Bauwerk_abstrakt,Objekt_mit_ID);
--- Attribute :
   Bauwerksnummer                : STRING(7);
   Interne_Bauwerksnummer        : OPTIONAL STRING(12);
   Interner_Sortierschluessel    : OPTIONAL STRING(15);
   Bauwerksname                  : OPTIONAL STRING(50);
   naechstgelegener_Ort          : OPTIONAL STRING(50);
   Gesamtlaenge_Bruecken         : OPTIONAL Meter;
   Gesamtlaenge_Tunnel           : OPTIONAL Meter;
   Gesamtlaenge_Laermschutzbauw  : OPTIONAL Meter;
   Gesamtlaenge_Stuetzbauwerke   : OPTIONAL Meter;
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
   hat_Amt                       : OPTIONAL SET [1:?] OF Strassenbaudienststelle_abstrakt; (* D *)
   hat_Verwaltungsbezirk         : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
   besteht_aus_Teilbauwerk       : SET [1:?] OF Teilbauwerk_abstrakt; (* O *)
DERIVE
   Anzahl_Teilbauwerke           : INTEGER :=
                                       HIINDEX(besteht_aus_Teilbauwerk)
                                     - LOINDEX(besteht_aus_Teilbauwerk) + 1;
END_ENTITY;

ENTITY Bauwerk_abstrakt
ABSTRACT SUPERTYPE OF (ONEOF(Bauwerk,Bauwerk_Symbol));
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Bauwerk_Symbol
SUBTYPE OF (Bauwerk_abstrakt);
--- Attribute :
   Kennung                       : STRING(7) FIXED;
--- Relationen :
END_ENTITY;

ENTITY Teilbauwerk
SUPERTYPE OF (ONEOF(Bruecke,Verkehrszeichenbruecke,Tunnel_Trogbauwerk,
                    Laermschutzbauwerk,Stuetzbauwerk,sonstiges_Bauwerk))
SUBTYPE OF (Teilbauwerk_abstrakt,Punktobjekt_Modell,Punktobjekt_hist,
            Streckenobjekt_stat,Objekt_mit_ID);
--- Attribute :
   Teilbauwerksnummer            : STRING(2);
   Interne_Teilbauwerksnummer    : STRING(2);
   Name_des_Teilbauwerks         : OPTIONAL STRING(50);
   Interner_Sortierschluessel    : OPTIONAL STRING(15);
   Unterhaltung_Instandsetzung   : OPTIONAL STRING(15);
   Bauwerksart                   : OPTIONAL STRING(15);
   Stadium_Teilbauwerk           : OPTIONAL STRING(15);
   Stationierung                 : OPTIONAL STRING(15);
   Bauwerksakte_Nummer           : OPTIONAL STRING(50);
   Baulast_Konstruktion          : OPTIONAL STRING(15);
   Anderes_Bauwerk_nach_DIN1076  : OPTIONAL STRING(15);
   Baujahr                       : OPTIONAL Jahr;
   Denkmalschutz                 : OPTIONAL STRING(50);
   Unterlagen                    : OPTIONAL STRING;
   Datenerfassung_abgeschlossen  : OPTIONAL STRING(15);
   Konstruktion                  : OPTIONAL STRING(50);
   Bauwerksrichtung_Text         : OPTIONAL STRING(80);
   massgebendes_Teilbauwerk      : OPTIONAL BOOLEAN;
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
   hat_Strassenbaudienststelle   : SET [1:?] OF Strassenbaudienststelle_abstrakt;
                                   (* D *) (* O *)
   hat_UI_Partner                : OPTIONAL UI_Partner;
   hat_Sachverhalt               : OPTIONAL SET [1:?] OF Sachverhalt; (* O *)
   hat_abgeschlossene_Pruefung   : OPTIONAL SET [1:?] OF
                                            abgeschlossene_Pruefung;
   hat_gegenw_dok_Bauwerkszustand: OPTIONAL SET [1:?] OF
                                            gegenw_dokum_Bauwerkszustand;
   hat_durchgef_Pruefungen_Messgn: OPTIONAL SET [1:?] OF
                                            durchgef_Pruefungen_Messungen;
   hat_Prueffahrzeuge_Pruefger   : OPTIONAL SET [1:?] OF
                                            Prueffahrzeuge_Pruefgeraete;
   hat_Pruefanweisungen          : OPTIONAL SET [1:?] OF Pruefanweisungen;
   hat_Verwaltungsmassnahme      : OPTIONAL SET [1:?] OF
                                            Verwaltungsmassn_Sondervereinb; (* O *)
   hat_Bau_und_Erhaltungsmassn   : OPTIONAL SET [1:?] OF
                                            Bau_und_Erhaltungsmassnahme; (* O *)
   hat_Anlagen_Bauwerksbuch      : OPTIONAL SET [1:?] OF Anlagen_Bauwerksbuch;
   hat_Entwuerfe_und_Berechnungen: OPTIONAL SET [1:?] OF
                                            Entwuerfe_und_Berechnungen;
   hat_Gestaltungen              : OPTIONAL SET [1:?] OF Gestaltungen;
   hat_Leitungen_an_Bauwerken    : OPTIONAL SET [1:?] OF
                                            Leitungen_an_Bauwerken;
   hat_statisches_System_Tragfgkt: OPTIONAL SET [1:?] OF
                                            statisches_System_Tragfaehigkt;
   hat_Vorspannungen             : OPTIONAL SET [1:?] OF Vorspannungen;
   hat_Gruendungen               : OPTIONAL SET [1:?] OF Gruendungen;
   hat_Erd_und_Felsanker         : OPTIONAL SET [1:?] OF Erd_und_Felsanker;
   hat_Brueckenseile_und_Kabel   : OPTIONAL SET [1:?] OF
                                            Brueckenseile_und_Kabel;
   hat_Fahrbahnuebergang         : OPTIONAL SET [1:?] OF
                                            Fahrbahnuebergang;
   hat_Abdichtungen              : OPTIONAL SET [1:?] OF Abdichtungen;
   hat_Kappe                     : OPTIONAL SET [1:?] OF Kappe;
   hat_Schutzeinrichtungen       : OPTIONAL SET [1:?] OF Schutzeinrichtungen;
   hat_Ausstattung               : OPTIONAL SET [1:?] OF Ausstattung;
   hat_Verfuellungen             : OPTIONAL SET [1:?] OF Verfuellungen;
   hat_Betonersatzsystem         : OPTIONAL SET [1:?] OF
                                            Betonersatzsystem;
   hat_Oberflaechenschutzsystem  : OPTIONAL SET [1:?] OF
                                            Oberflaechenschutzsystem;
   hat_Reaktionsharzgeb_Duennbel : OPTIONAL SET [1:?] OF
                                            Reaktionsharzgeb_Duennbelaege;
   hat_Bauwerkseinzelheiten      : Bauwerkseinzelheiten; (* O *)
   gehoert_zu_Bauwerk            : Bauwerk_abstrakt; (* O *)
   von_Hindernis                 : OPTIONAL SET [1:?] OF Hindernis; (* O *)
   von_Kreuzung_Strasse_Weg      : OPTIONAL SET [1:?] OF Kreuzung_Strasse_Weg; (* O *)
END_ENTITY;

ENTITY Teilbauwerk_abstrakt
ABSTRACT SUPERTYPE OF (ONEOF(Teilbauwerk,Teilbauwerk_Symbol));
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Teilbauwerk_Symbol
SUBTYPE OF (Teilbauwerk_abstrakt);
--- Attribute :
   Kennung                       : STRING(9) FIXED;
--- Relationen :
END_ENTITY;

ENTITY Sachverhalt
SUBTYPE OF (Punktobjekt_stat,Streckenobjekt_stat,Objekt_mit_ID);
--- Attribute :
   Lage_Sachverhalt              : OPTIONAL STRING(15);
   Art_des_Sachverhaltes         : OPTIONAL STRING(15);
   Name_des_Sachverhaltes        : OPTIONAL STRING(80);
   Strassenklasse_des_Sachverh   : OPTIONAL STRING(1);
   Strassennummer_des_Sachverh   : OPTIONAL INTEGER;
   Strassenzusatz                : OPTIONAL STRING(9);
   Abweichende_Zuordnung         : OPTIONAL BOOLEAN;
   Unterhaltungszuordnung        : OPTIONAL BOOLEAN;
   Verknuepfung_mit_Strassennetz : OPTIONAL BOOLEAN;
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
   hat_Bauwerksbelaege           : OPTIONAL SET [1:?] OF Bauwerksbelaege;
   hat_Bauwerksbeschilderung     : OPTIONAL SET [1:?] OF Bauwerksbeschilderung;
   hat_Durchfahrtshoehen         : OPTIONAL SET [1:?] OF Durchfahrtshoehen;
   hat_Info_Strasse              : OPTIONAL Info_Strasse;
   hat_Bauwerk_Verkehrsstaerke   : OPTIONAL Bauwerk_Verkehrsstaerke;
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk_abstrakt; (* O *)
   hat_Betriebskilometer         : OPTIONAL Betriebskilometer;
END_ENTITY;

ENTITY Info_Strasse
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Nutzbare_Breite_in_Stat       : OPTIONAL Meter;
   Nutzbare_Breite_gegen_Stat    : OPTIONAL Meter;
   Min_Breite_in_Stationierung   : OPTIONAL Meter;
   Min_Breite_gegen_Stationierung: OPTIONAL Meter;
   OD_FS                         : OPTIONAL TAB_OD_FS;
   Abstand_von_Bestandsachse     : OPTIONAL Meter;
   Routing_1                     : OPTIONAL STRING(50);
   Routing_2                     : OPTIONAL STRING(50);
   Umfahrt_Schwerverkehr         : OPTIONAL STRING(15);
   Umfahrt_OePNV                 : OPTIONAL STRING(15);
   Umfahrt_PKW                   : OPTIONAL STRING(15);
   Bemerkung                     : OPTIONAL STRING;
--- Relationen :
   hat_Amt                       : OPTIONAL SET [1:?] OF Strassenbaudienststelle_abstrakt; (* D *)
   hat_Meisterei                 : OPTIONAL SET [1:?] OF Strassenbaudienststelle_abstrakt; (* D *)
   hat_Anzahl_Fahrstreifen       : OPTIONAL Anzahl_Fahrstreifen;
   Baulasttraeger_Befestigung    : OPTIONAL UI_Partner;
   UI_Pflicht_Verkehrsflaeche    : OPTIONAL UI_Partner;
INVERSE
   von_Sachverhalt               : Sachverhalt FOR hat_Info_Strasse;
END_ENTITY;

ENTITY Bauwerk_Verkehrsstaerke
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   zulaessige_Geschwindigkeit    : OPTIONAL Stundenkilometer;
   Bemerkung                     : OPTIONAL STRING;
--- Relationen :
   DTV_Kfz                       : DTV_Basis;
   Anteil_DTV_SV                 : OPTIONAL Anteil_am_DTV;
INVERSE
   von_Sachverhalt               : SET [0:1] OF Sachverhalt
                                       FOR hat_Bauwerk_Verkehrsstaerke;
END_ENTITY;

ENTITY Durchfahrtshoehen
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Abstand_Bestandsachse         : OPTIONAL Meter;
   Durchfahrtshoehe              : OPTIONAL Meter;
   Kennzeichnung                 : OPTIONAL STRING(15);
   Bemerkung                     : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Sachverhalt               : Sachverhalt FOR hat_Durchfahrtshoehen;
END_ENTITY;

ENTITY Bauwerksbeschilderung
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Schild_StVO_Zeichennummer     : OPTIONAL STRING(10);
   Schild_Bezeichnung            : OPTIONAL STRING(50);
   Schild_Mengenangabe           : OPTIONAL STRING(50);
   Schild_Angabe_Zusatzschild    : OPTIONAL STRING(50);
   Bauwerksbeschild_Bemerkung    : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Sachverhalt               : Sachverhalt FOR hat_Bauwerksbeschilderung;
END_ENTITY;

ENTITY Bauwerksbelaege
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Art_der_Belaege               : OPTIONAL STRING(15);
   Deckschichtkennzeichnung      : OPTIONAL BOOLEAN;
   Belaege_Einbauort             : OPTIONAL STRING;
   Schichtnummer                 : OPTIONAL INTEGER;
   Schichtdicke                  : OPTIONAL Millimeter;
   Einbaujahr                    : OPTIONAL Jahr;
   Einbaumonat                   : OPTIONAL Monat;
   Einbauflaeche                 : OPTIONAL Quadratmeter;
   ausfuehrende_Firma            : OPTIONAL STRING(80);
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Sachverhalt               : Sachverhalt FOR hat_Bauwerksbelaege;
END_ENTITY;

ENTITY Entwuerfe_und_Berechnungen
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Art_Entw_und_Ber              : OPTIONAL STRING(15);
   Aufsteller_Entw_und_Ber       : OPTIONAL STRING(80);
   Bearbeiter_Entw_und_Ber       : OPTIONAL STRING(80);
   Aufstellungsjahr_Entw_und_Ber : OPTIONAL Jahr;
   Bemerkungen_zu_Entw_und_Ber   : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk FOR hat_Entwuerfe_und_Berechnungen;
END_ENTITY;

ENTITY Bruecke
SUBTYPE OF (Teilbauwerk);
--- Attribute :
   Gesamtlaenge_Bruecke          : OPTIONAL Meter;
   Breite_Bruecke                : OPTIONAL Meter;
   Gesamtbreite_Bruecke          : OPTIONAL Meter;
   Brueckenflaeche               : OPTIONAL Quadratmeter;
   Zwischenraum_Ueberbauten      : OPTIONAL Meter;
   Konstruktionshoehe_min        : OPTIONAL Meter;
   Konstruktionshoehe_max        : OPTIONAL Meter;
   Anzahl_Felder_Bruecke         : OPTIONAL INTEGER;
   Anzahl_Ueberbauten_Bruecke    : OPTIONAL INTEGER;
   Anzahl_Stege_Bruecke          : OPTIONAL INTEGER;
   Laengsneigung_max             : OPTIONAL Prozent;
   Querneigung_max               : OPTIONAL Prozent;
   Kruemmung                     : OPTIONAL STRING(15);
   Bauwerkswinkel                : OPTIONAL Gon;
   Winkelrichtung                : OPTIONAL STRING(15);
   Querschnitt_Ueberbau          : OPTIONAL STRING(15);
   Querschnitt_Haupttragwerk     : OPTIONAL STRING(15);
   Bauverfahren_Ueberbau         : OPTIONAL STRING(15);
   Konstr_Massn_nachtr_Verstaerk : OPTIONAL STRING(15);
   Koppelfugen                   : OPTIONAL STRING(15);
   maximale_Ueberschuettungshoehe: OPTIONAL Meter;
   minimale_Ueberschuettungshoehe: OPTIONAL Meter;
   lichte_Hoehe                  : OPTIONAL Meter;
   lichte_Weite_b_Einfeldbruecke : OPTIONAL Meter;
   Bemerkungen_zum_Baugrund      : OPTIONAL STRING;
   Bemerkungen_zur_Bruecke       : OPTIONAL STRING;
--- Relationen :
   hat_Baustoff_Bauwerk          : OPTIONAL SET [1:?] OF Baustoff_Bauwerk;
   hat_Brueckenfeld_Stuetzung    : OPTIONAL SET [1:?] OF Brueckenfeld_Stuetzung;
END_ENTITY;

ENTITY Verkehrszeichenbruecke
SUBTYPE OF (Teilbauwerk);
--- Attribute :
   Querschnitt_Stiel             : OPTIONAL STRING(15);
   Querschnitt_Riegel            : OPTIONAL STRING(15);
   Gesamtlaenge_des_Riegels      : OPTIONAL Meter;
   Besichtigungs_Wartungsoeffnung: OPTIONAL STRING(15);
   Befest_Konstr_Schilder_Signalg: OPTIONAL STRING(15);
   Bemerkung_Verkehrsz_Bruecke   : OPTIONAL STRING;
--- Relationen :
   hat_Baustoff_Bauwerk          : OPTIONAL SET [1:?] OF Baustoff_Bauwerk;
   hat_Brueckenfeld_Stuetzung    : OPTIONAL SET [1:?] OF Brueckenfeld_Stuetzung;
END_ENTITY;

ENTITY Tunnel_Trogbauwerk
SUBTYPE OF (Teilbauwerk);
--- Attribute :
   Gradiente                     : OPTIONAL STRING(15);
   Rundungshalbmesser            : OPTIONAL Meter;
   minimale_Laengsneigung        : OPTIONAL Prozent;
   maximale_Laengsneigung        : OPTIONAL Prozent;
   minimaler_Radius_im_Grundriss : OPTIONAL Meter;
   minimale_Ueberdeckungshoehe   : OPTIONAL Meter;
   maximale_Ueberdeckungshoehe   : OPTIONAL Meter;
   Hoehe_rel_NN_in_Tunnelmitte   : OPTIONAL Meter;
   Bauwerkslaenge                : OPTIONAL Meter;
   geschl_Laenge_der_Tunnelroehre: OPTIONAL Meter;
   Tunnelflaeche                 : OPTIONAL Quadratmeter;
   Bauweise                      : OPTIONAL STRING(15);
   Querschnitt                   : OPTIONAL STRING(15);
   Lichte_Weite_Sonderquerschnitt: OPTIONAL Meter;
   Ausbruchflaeche               : OPTIONAL Quadratmeter;
   Sicherung                     : OPTIONAL STRING;
   Geologie                      : OPTIONAL STRING(15);
   Grund_und_Gebirgswasserverh   : OPTIONAL STRING;
   Bauverfahren                  : OPTIONAL STRING(15);
   Vortriebsverfahren            : OPTIONAL STRING(15);
   Entwaesserungsart             : OPTIONAL STRING(15);
   Entwaesserungsart_Laenge      : OPTIONAL STRING;
   Bemerkungen_zum_Tunnel_Trogbau: OPTIONAL STRING;
--- Relationen :
   hat_Segmente_Tunnel_Trogbw    : SET [1:?] OF Segment_Tunnel_Trogbauwerk;
   hat_Tunnelbeleuchtung         : OPTIONAL SET [1:?] OF Tunnelbeleuchtung;
   hat_Tunnellueftung            : OPTIONAL SET [1:?] OF Tunnellueftung;
   hat_Tunnel_Zentrale_Anlagen   : OPTIONAL SET [1:?] OF
                                                Tunnel_Zentrale_Anlagen;
   hat_Tunnelsicherheit          : OPTIONAL SET [1:?] OF Tunnelsicherheit;
   hat_Tunnel_Verkehrseinrichtgn : OPTIONAL SET [1:?] OF
                                                Tunnel_Verkehrseinrichtungen;
   hat_Baustoff_Bauwerk          : OPTIONAL SET [1:?] OF Baustoff_Bauwerk;
   hat_Brueckenfeld_Stuetzung    : OPTIONAL SET [1:?] OF Brueckenfeld_Stuetzung;
DERIVE
   Anzahl_Segmente               : INTEGER :=
                                       HIINDEX(hat_Segmente_Tunnel_Trogbw)
                                     - LOINDEX(hat_Segmente_Tunnel_Trogbw) + 1;
END_ENTITY;

ENTITY Laermschutzbauwerk
SUBTYPE OF (Teilbauwerk);
--- Attribute :
   Gesamtlaenge                  : OPTIONAL Meter;
   Flaeche_des_Laermschirmes     : OPTIONAL Quadratmeter;
   Bemerkungen_zum_Laermschutzbw : OPTIONAL STRING;
--- Relationen :
   hat_Segmente_Laermschutzbw    : SET [1:?] OF Segment_Laermschutzbauwerk;
DERIVE
   Anzahl_Segmente               : INTEGER :=
                                       HIINDEX(hat_Segmente_Laermschutzbw)
                                     - LOINDEX(hat_Segmente_Laermschutzbw) + 1;
END_ENTITY;

ENTITY Stuetzbauwerk
SUBTYPE OF (Teilbauwerk);
--- Attribute :
   Gesamtlaenge_Stuetzbauwerk    : OPTIONAL Meter;
   Flaeche_Stuetzbauwerk         : OPTIONAL Quadratmeter;
   Bemerkungen_zum_Stuetzbauwerk : OPTIONAL STRING;
--- Relationen :
   hat_Segmente_Stuetzbw         : SET [1:?] OF Segment_Stuetzbauwerk;
DERIVE
   Anzahl_Segmente               : INTEGER :=
                                       HIINDEX(hat_Segmente_Stuetzbw)
                                     - LOINDEX(hat_Segmente_Stuetzbw) + 1;
END_ENTITY;

ENTITY sonstiges_Bauwerk
SUBTYPE OF (Teilbauwerk);
--- Attribute :
   Stuetzweite_sonstiges_Bauwerk : OPTIONAL Meter;
   Beschreibung_sonstiges_Bauwerk: OPTIONAL STRING;
--- Relationen :
   hat_Baustoff_Bauwerk          : OPTIONAL SET [1:?] OF Baustoff_Bauwerk;
END_ENTITY;

ENTITY Brueckenfeld_Stuetzung
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Art_der_Stuetzung             : OPTIONAL STRING(15);
   Feldnummer                    : OPTIONAL INTEGER;
   Stuetzweite                   : OPTIONAL Meter;
   Stuetzungshoehe               : OPTIONAL Meter;
   Anzahl_d_Stuetzen_einer_Reihe : OPTIONAL INTEGER;
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
   hat_Lager                     : OPTIONAL SET [1:?] OF Lager;
INVERSE
   von_Tunnel_Trogbauwerk        : SET [0:?] OF Tunnel_Trogbauwerk
                                       FOR hat_Brueckenfeld_Stuetzung; (* D *)
   von_Bruecke                   : SET [0:?] OF Bruecke
                                       FOR hat_Brueckenfeld_Stuetzung; (* D *)
   von_Verkehrszeichenbruecke    : SET [0:?] OF Verkehrszeichenbruecke
                                       FOR hat_Brueckenfeld_Stuetzung; (* D *)
END_ENTITY;

ENTITY Segment_Tunnel_Trogbauwerk
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Segmentnummer                 : INTEGER;
   Segmentlaenge                 : OPTIONAL Meter;
   Oberflaeche_Tunneldecke       : OPTIONAL STRING(15);
   Oberflaeche_Tunnelwaende      : OPTIONAL STRING(15);
   Hoehe_Segmentanfang_rechts    : OPTIONAL Meter;
   Hoehe_Segmentanfang_links     : OPTIONAL Meter;
   Hoehe_Segmentende_rechts      : OPTIONAL Meter;
   Hoehe_Segmentende_links       : OPTIONAL Meter;
   Bemerkungen_Segm_Tunnel_Trogbw: OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Tunnel_Trogbauwerk        : SET [1:?] OF Tunnel_Trogbauwerk FOR hat_Segmente_Tunnel_Trogbw; (* D *)
END_ENTITY;

ENTITY Segment_Laermschutzbauwerk
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Segmentnummer                 : INTEGER;
   Segmentlaenge_Laermschutz     : OPTIONAL Meter;
   Hoehe_Segmentanfang           : OPTIONAL Meter;
   Hoehe_Segmentende             : OPTIONAL Meter;
   Pfostenabstand                : OPTIONAL Meter;
   Standort_des_Pfostens         : OPTIONAL STRING(15);
   Untergrund                    : OPTIONAL STRING(15);
   Fangvorrichtung               : OPTIONAL STRING(15);
   Vogelschutz                   : OPTIONAL STRING(15);
   akustische_Eig_Vorsatzschale  : OPTIONAL STRING(15);
   Pflanzungen_Verkehrsseite     : OPTIONAL STRING(15);
   Pflanzungen_Anliegerseite     : OPTIONAL STRING(15);
   Besichtigungsweg_Anliegerseite: OPTIONAL STRING(15);
   Bemerkungen_Laermschutz       : OPTIONAL STRING;
--- Relationen :
   hat_Baustoff_Bauwerk          : OPTIONAL SET [1:?] OF Baustoff_Bauwerk;
INVERSE
   von_Laermschutzbauwerk        : SET [1:?] OF Laermschutzbauwerk FOR hat_Segmente_Laermschutzbw; (* D *)
END_ENTITY;

ENTITY Segment_Stuetzbauwerk
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Segmentnummer                 : INTEGER;
   Segmentlaenge_Stuetzbauwerk   : OPTIONAL Meter;
   Hoehe_Segmentanfang_Stuetzbw  : OPTIONAL Meter;
   Hoehe_Segmentende_Stuetzbw    : OPTIONAL Meter;
   Besichtigungsweg_Anliegerseite: OPTIONAL STRING(15);
   Bemerkungen_zum_Stuetzbauwerk : OPTIONAL STRING;
--- Relationen :
   hat_Baustoff_Bauwerk          : OPTIONAL SET [1:?] OF Baustoff_Bauwerk;
INVERSE
   von_Stuetzbauwerk             : SET [1:?] OF Stuetzbauwerk FOR hat_Segmente_Stuetzbw; (* D *)
END_ENTITY;

ENTITY Pruefanweisungen
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   abweichende_Pruefpflicht      : OPTIONAL STRING(15);
   Pruefanweisungen              : OPTIONAL STRING;
   Tauchereinsatz                : OPTIONAL STRING(15);
   Pruefung_elektr_Einrichtungen : OPTIONAL STRING(15);
   Pruefung_maschn_Einrichtungen : OPTIONAL STRING(15);
   Bemerkungen_zur_Pruefanweisung: OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk FOR hat_Pruefanweisungen;
END_ENTITY;

ENTITY durchgef_Pruefungen_Messungen
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Art_der_Pruefung              : OPTIONAL STRING(15);
   Pruefungs_Messungsdatum       : OPTIONAL Datum;
   Pruefungs_Messungszyklus      : OPTIONAL INTEGER;
   Zustandsnote                  : OPTIONAL REAL;
   Bemerkungen_zur_durchgef_Prfg : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk FOR hat_durchgef_Pruefungen_Messgn;
END_ENTITY;

TYPE Schadensbewertung = INTEGER;
WHERE
   Wertebereich                  : { 0 <= SELF <= 4 };
   (* BEDINGUNG ( SELF >= 0 AND SELF <= 4 ) *)
END_TYPE;

ENTITY gegenw_dokum_Schaden
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Laufende_Nummer               : INTEGER;
   Menge_allgemein               : OPTIONAL STRING(9);
   Menge_mit_Dimension_Schluessel: OPTIONAL STRING(9);
   Menge_mit_Dimension           : OPTIONAL STRING(20);
   Ortsbest_Feld_Pfeiler_Block   : OPTIONAL STRING(9);
   Ortsbest_Feld_Pfeiler_Block_W : OPTIONAL STRING(20);
   Ortsbestimmung_Ueberbau       : OPTIONAL STRING(9);
   Ortsbestimmung_Ueberbau_Werte : OPTIONAL STRING(20);
   Ortsbest_laengs_Schluessel    : OPTIONAL STRING(9);
   Ortsbestimmung_laengs_Werte   : OPTIONAL STRING(20);
   Ortsbestimmung_quer           : OPTIONAL STRING(9);
   Ortsbestimmung_quer_Werte     : OPTIONAL STRING(20);
   Ortsbestimmung_hoch_Schluessel: OPTIONAL STRING(9);
   Ortsbestimmung_hoch_Werte     : OPTIONAL STRING(20);
   Bewertung_Standsicherheit     : OPTIONAL Schadensbewertung;
   Bewertung_Verkehrssicherheit  : OPTIONAL Schadensbewertung;
   Bewertung_Dauerhaftigkeit     : OPTIONAL Schadensbewertung;
   Schadensveraenderungen        : OPTIONAL STRING(9);
   Bemerkung_Schluessel_1        : OPTIONAL STRING(9);
   Bemerkung_Schluessel_2        : OPTIONAL STRING(9);
   Bemerkung_Schluessel_3        : OPTIONAL STRING(9);
   Bemerkung_Schluessel_4        : OPTIONAL STRING(9);
   Bemerkung_Schluessel_5        : OPTIONAL STRING(9);
   Bemerkung_Schluessel_6        : OPTIONAL STRING(9);
   Bemerkung_Text_1              : OPTIONAL STRING(20);
   Bemerkung_Text_2              : OPTIONAL STRING(20);
   Bemerkung_Text_3              : OPTIONAL STRING(20);
   Bemerkung_Text_4              : OPTIONAL STRING(20);
   Bemerkung_Text_5              : OPTIONAL STRING(20);
   Bemerkung_Text_6              : OPTIONAL STRING(20);
   Hauptbauteil                  : OPTIONAL STRING(9);
   Konstruktionsteil             : OPTIONAL STRING(9);
   Bauteilergaenzung             : OPTIONAL STRING(9);
   Schaden                       : OPTIONAL STRING(9);
   Schaden_Werte                 : OPTIONAL STRING(20);
   Schadenstext                  : OPTIONAL STRING;
   Name_Schadensbild             : OPTIONAL STRING(128);
   Pruefjahr_Ersterfassung       : OPTIONAL Jahr;
   Pruefart_Ersterfassung        : OPTIONAL STRING(2);
   Pruefjahr_letzte_Bestaetigung : OPTIONAL Jahr;
   Pruefart_letzte_Bestaetigung  : OPTIONAL STRING(2);
   Vormerkung_einfache_Pruefung  : OPTIONAL BOOLEAN;
   ID_Nummer_des_Schadens        : OPTIONAL STRING(6);
   Schadensbeispiel_Nummer       : OPTIONAL STRING(10);
   Historisierungskennzeichen    : OPTIONAL STRING(1);
--- Relationen :
INVERSE
   von_gegenw_dok_Bauwerkszustand: gegenw_dokum_Bauwerkszustand
                                       FOR hat_gegenw_dokum_Schaden;
END_ENTITY;

ENTITY gegenw_dokum_Bauwerkszustand
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Zustandsnote                  : OPTIONAL REAL;
   Max_Schadbw_Standsicherheit   : OPTIONAL Schadensbewertung;
   Max_Schadbw_Verkehrssicherheit: OPTIONAL Schadensbewertung;
   Max_Schadbw_Dauerhaftigkeit   : OPTIONAL Schadensbewertung;
   Datum_naechste_Hauptpruefung  : OPTIONAL Datum;
   Art_naechste_Hauptpruefung    : OPTIONAL STRING(2);
   Datum_naechste_einf_Pruefung  : OPTIONAL Datum;
   Datum_naechste_Sonderpruefung : OPTIONAL Datum;
   Zustandstext                  : OPTIONAL STRING;
   ZN_BTG_Ueberbau               : OPTIONAL REAL;
   ZN_BTG_Unterbau               : OPTIONAL REAL;
   ZN_BTG_Bauwerk                : OPTIONAL REAL;
   ZN_BTG_Vorspannung            : OPTIONAL REAL;
   ZN_BTG_Gruendungen            : OPTIONAL REAL;
   ZN_BTG_Erd_und_Felsanker      : OPTIONAL REAL;
   ZN_BTG_Brueckenseile          : OPTIONAL REAL;
   ZN_BTG_Lager                  : OPTIONAL REAL;
   ZN_BTG_Uebergaenge            : OPTIONAL REAL;
   ZN_BTG_Abdichtungen           : OPTIONAL REAL;
   ZN_BTG_Belaege                : OPTIONAL REAL;
   ZN_BTG_Kappen                 : OPTIONAL REAL;
   ZN_BTG_Schutzeinrichtg        : OPTIONAL REAL;
   ZN_BTG_Sonstiges              : OPTIONAL REAL;
--- Relationen :
   hat_gegenw_dokum_Schaden      : OPTIONAL SET [1:?] OF gegenw_dokum_Schaden;
   hat_gegenw_dokum_Empfehlung   : OPTIONAL SET [1:?] OF gegenw_dokum_Empfehlung;
INVERSE
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk FOR hat_gegenw_dok_Bauwerkszustand;
END_ENTITY;

ENTITY Schaden_abgeschl_Prfg
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Laufende_Nummer               : INTEGER;
   Menge_allgemein               : OPTIONAL STRING(9);
   Menge_mit_Dimension_Schluessel: OPTIONAL STRING(9);
   Menge_mit_Dimension           : OPTIONAL STRING(20);
   Ortsbest_Feld_Pfeiler_Block   : OPTIONAL STRING(9);
   Ortsbest_Feld_Pfeiler_Block_W : OPTIONAL STRING(20);
   Ortsbestimmung_Ueberbau       : OPTIONAL STRING(9);
   Ortsbestimmung_Ueberbau_Werte : OPTIONAL STRING(20);
   Ortsbest_laengs_Schluessel    : OPTIONAL STRING(9);
   Ortsbestimmung_laengs_Werte   : OPTIONAL STRING(20);
   Ortsbestimmung_quer           : OPTIONAL STRING(9);
   Ortsbestimmung_quer_Werte     : OPTIONAL STRING(20);
   Ortsbestimmung_hoch_Schluessel: OPTIONAL STRING(9);
   Ortsbestimmung_hoch_Werte     : OPTIONAL STRING(20);
   Bewertung_Standsicherheit     : OPTIONAL Schadensbewertung;
   Bewertung_Verkehrssicherheit  : OPTIONAL Schadensbewertung;
   Bewertung_Dauerhaftigkeit     : OPTIONAL Schadensbewertung;
   Schadensveraenderungen        : OPTIONAL STRING(9);
   Bemerkung_Schluessel_1        : OPTIONAL STRING(9);
   Bemerkung_Schluessel_2        : OPTIONAL STRING(9);
   Bemerkung_Schluessel_3        : OPTIONAL STRING(9);
   Bemerkung_Schluessel_4        : OPTIONAL STRING(9);
   Bemerkung_Schluessel_5        : OPTIONAL STRING(9);
   Bemerkung_Schluessel_6        : OPTIONAL STRING(9);
   Bemerkung_Text_1              : OPTIONAL STRING(20);
   Bemerkung_Text_2              : OPTIONAL STRING(20);
   Bemerkung_Text_3              : OPTIONAL STRING(20);
   Bemerkung_Text_4              : OPTIONAL STRING(20);
   Bemerkung_Text_5              : OPTIONAL STRING(20);
   Bemerkung_Text_6              : OPTIONAL STRING(20);
   Hauptbauteil                  : OPTIONAL STRING(9);
   Konstruktionsteil             : OPTIONAL STRING(9);
   Bauteilergaenzung             : OPTIONAL STRING(9);
   Schaden                       : OPTIONAL STRING(9);
   Schaden_Werte                 : OPTIONAL STRING(20);
   Schadenstext                  : OPTIONAL STRING;
   Name_Schadensbild             : OPTIONAL STRING(128);
   Pruefjahr                     : OPTIONAL Jahr;
   Pruefart                      : OPTIONAL STRING(2);
   Vormerkung_einfache_Pruefung  : OPTIONAL BOOLEAN;
   ID_Nummer_des_Schadens        : OPTIONAL STRING(6);
   Schadensbeispiel_Nummer       : OPTIONAL STRING(10);
--- Relationen :
INVERSE
   von_abgeschlossene_Pruefung   : abgeschlossene_Pruefung
                                       FOR hat_Schaden_abgeschl_Prfg;
END_ENTITY;

ENTITY abgeschlossene_Pruefung
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Pruefjahr                     : OPTIONAL Jahr;
   Pruefart                      : OPTIONAL STRING(2);
   Pruefrichtung                 : OPTIONAL STRING(80);
   Pruefer                       : OPTIONAL STRING(30);
   Dienstelle_Pruefer            : OPTIONAL STRING(30);
   Pruefungsbeginn               : OPTIONAL Datum;
   Abschluss_Schadenerfassung    : OPTIONAL Datum;
   Pruefungsabschluss            : OPTIONAL Datum;
   Max_Schadbw_Standsicherheit   : OPTIONAL Schadensbewertung;
   Max_Schadbw_Verkehrssicherheit: OPTIONAL Schadensbewertung;
   Max_Schadbw_Dauerhaftigkeit   : OPTIONAL Schadensbewertung;
   Datum_naechste_Hauptpruefung  : OPTIONAL Datum;
   Art_naechste_Hauptpruefung    : OPTIONAL STRING(2);
   Datum_naechste_einf_Pruefung  : OPTIONAL Datum;
   Datum_naechste_Sonderpruefung : OPTIONAL Datum;
   Prueftext                     : OPTIONAL STRING;
   Zustandsnote                  : OPTIONAL REAL;
--- Relationen :
   hat_Schaden_abgeschl_Prfg     : OPTIONAL SET [1:?] OF Schaden_abgeschl_Prfg;
   hat_Empfehlung_abgeschl_Prfg  : OPTIONAL SET [1:?] OF Empfehlung_abgeschl_Prfg;
INVERSE
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk FOR hat_abgeschlossene_Pruefung;
END_ENTITY;

ENTITY gegenw_dokum_Empfehlung
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Art                           : OPTIONAL STRING(15);
   Menge                         : OPTIONAL REAL;
   Schaetzkosten                 : OPTIONAL Waehrungsbetrag;
   Schadensbeseitigung           : OPTIONAL STRING(15);
   Projektbezeichnung            : OPTIONAL STRING(80);
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_gegenw_dok_Bauwerkszustand: gegenw_dokum_Bauwerkszustand
                                       FOR hat_gegenw_dokum_Empfehlung;
END_ENTITY;

ENTITY Empfehlung_abgeschl_Prfg
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Art                           : OPTIONAL STRING(15);
   Menge                         : OPTIONAL REAL;
   Schaetzkosten                 : OPTIONAL Waehrungsbetrag;
   Schadensbeseitigung           : OPTIONAL STRING(15);
   Projektbezeichnung            : OPTIONAL STRING(80);
   Pruefart                      : OPTIONAL STRING(2);
   Pruefjahr                     : OPTIONAL Jahr;
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_abgeschlossene_Pruefung   : abgeschlossene_Pruefung
                                       FOR hat_Empfehlung_abgeschl_Prfg;
END_ENTITY;


ENTITY Prueffahrzeuge_Pruefgeraete
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Geraeteart                    : OPTIONAL STRING(15);
   voraussichtl_Einsatzdauer     : OPTIONAL Dauer;
   Bemerkungen_zu_Prueffahrzeugen: OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk FOR hat_Prueffahrzeuge_Pruefger;
END_ENTITY;

ENTITY Anlagen_Bauwerksbuch
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Beschreibung_sonst_Anlagen    : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk FOR hat_Anlagen_Bauwerksbuch;
END_ENTITY;

ENTITY Verwaltungsmassn_Sondervereinb
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Aktenzeichen_des_Verw_Akt     : OPTIONAL STRING(30);
   Veranlasser                   : OPTIONAL STRING(80);
   Wirksamkeitsdatum             : OPTIONAL Datum;
   Beschreibung_der_Massnahme    : OPTIONAL STRING;
--- Relationen :
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk_abstrakt; (* O *)
END_ENTITY;

ENTITY Bau_und_Erhaltungsmassnahme
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Baumassnahme                  : OPTIONAL STRING(80);
   Art_der_Baumassnahme          : OPTIONAL STRING(15);
   Baujahr                       : OPTIONAL Jahr;
   Auftragssumme                 : OPTIONAL Waehrungsbetrag;
   Abrechnungssumme              : OPTIONAL Waehrungsbetrag;
   Auftraggeber_Bau_Erh_Massn    : OPTIONAL STRING(80);
   Auftragnehmer_Bau_Erh_Massn   : OPTIONAL STRING(80);
   Bauueberwachung               : OPTIONAL STRING(80);
   Baubeginn_Bau_Erh_Massn       : OPTIONAL Datum;
   Bauende_Bau_Erh_Massn         : OPTIONAL Datum;
   Ablauf_Maengelanspruch        : OPTIONAL Datum;
   Bemerkungen_Bau_Erh_Massn     : OPTIONAL STRING;
--- Relationen :
   hat_Kosten_fuer_Bau_Erh_u_Betr: OPTIONAL SET [1:?] OF
                                                Kosten_fuer_Bau_Erh_und_Betr;
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk_abstrakt; (* O *)
END_ENTITY;

ENTITY Kosten_fuer_Bau_Erh_und_Betr
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Kostenart_Bau_Erh_Kosten      : OPTIONAL STRING(15);
   Menge_Bau_Erh_Kosten          : OPTIONAL REAL(12);
   Haushaltsjahr_Bau_Erh_Kosten  : OPTIONAL Jahr;
   Kostentraeger_Bau_Erh_Kosten  : OPTIONAL STRING(120);
   Titel_Bau_Erh_Kosten          : OPTIONAL STRING(20);
   Ausgabe_Bau_Erh_Kosten        : OPTIONAL Waehrungsbetrag;
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Erhaltungs_u_Baumassnahme : Bau_und_Erhaltungsmassnahme FOR hat_Kosten_fuer_Bau_Erh_u_Betr;
END_ENTITY;

ENTITY Ausstattung
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Art                           : OPTIONAL STRING(15);
   Leitungsdurchmesser           : OPTIONAL Millimeter;
   Einbauort                     : OPTIONAL STRING;
   TUEV_Datum                    : OPTIONAL Datum;
   Bemerkungen_zu_Ausstattungen  : OPTIONAL STRING;
--- Relationen :
   hat_Baustoff_Bauwerk          : OPTIONAL SET [1:?] OF Baustoff_Bauwerk;
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk_abstrakt;
END_ENTITY;

ENTITY Schutzeinrichtungen
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Art_Schutzeinrichtung         : OPTIONAL STRING(15);
   Einbauort_Schutzeinrichtung   : OPTIONAL STRING;
   Einbaujahr_Schutzeinrichtung  : OPTIONAL Jahr;
   Laenge_Schutzeinrichtung      : OPTIONAL Meter;
   Hoehe_Schutzeinrichtung       : OPTIONAL Meter;
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
   hat_Baustoff_Bauwerk          : OPTIONAL SET [1:?] OF Baustoff_Bauwerk;
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk_abstrakt;
END_ENTITY;

ENTITY Vorspannungen
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Richtung                      : OPTIONAL STRING(15);
   intern_extern                 : OPTIONAL STRING(15);
   Vorspanngrad                  : OPTIONAL STRING(15);
   Spannverfahren                : OPTIONAL STRING(15);
   Spannkraft                    : OPTIONAL Kilonewton;
   Spannstahl_Streckgrenze       : OPTIONAL Newton_pro_Quadratmillimeter;
   Spannstahl_Bruchgrenze        : OPTIONAL Newton_pro_Quadratmillimeter;
   Spannstahlhersteller          : OPTIONAL STRING(15);
   Art_der_Verpressung           : OPTIONAL STRING(15);
   Typenbezeichnung              : OPTIONAL STRING(80);
   Einbaujahr_Vorspannung        : OPTIONAL Jahr;
   Einbauort_Vorspannung         : OPTIONAL STRING;
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk_abstrakt;
END_ENTITY;

ENTITY Gruendungen
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Art_der_Gruendungen           : OPTIONAL STRING(15);
   Typenbezeichnung_Gruendung    : OPTIONAL STRING(80);
   Einbauort_Gruendung           : OPTIONAL STRING;
   Einbaujahr_Gruendung          : OPTIONAL Jahr;
   Bemerkungen_zur_Gruendung     : OPTIONAL STRING;
--- Relationen :
   hat_Baustoff_Bauwerk          : OPTIONAL SET [1:?] OF Baustoff_Bauwerk;
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk_abstrakt;
END_ENTITY;

ENTITY Erd_und_Felsanker
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Verfahren_Erd_und_Felsanker   : OPTIONAL STRING(15);
   Hersteller_Erd_und_Felsanker  : OPTIONAL STRING(15);
   Zulassungsnummer              : OPTIONAL STRING(50);
   Anzahl_Erd_und_Felsanker      : OPTIONAL INTEGER;
   Art_Erd_und_Felsanker         : OPTIONAL STRING;
   Typenbez_Erd_und_Felsanker    : OPTIONAL STRING(80);
   Einbauort_Erd_und_Felsanker   : OPTIONAL STRING;
   Einbaujahr_Erd_und_Felsanker  : OPTIONAL Jahr;
   Bemerkungen_Erd_und_Felsanker : OPTIONAL STRING;
--- Relationen :
   hat_Baustoff_Bauwerk          : OPTIONAL SET [1:?] OF Baustoff_Bauwerk;
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk_abstrakt;
END_ENTITY;

ENTITY Lager
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer_Stuetzung       : OPTIONAL STRING(15);
   Anzahl_der_Lager              : OPTIONAL INTEGER;
   Art_der_Lager                 : OPTIONAL STRING(15);
   Typenbezeichnung              : OPTIONAL STRING(80);
   Einbauort_der_Lager           : OPTIONAL STRING;
   Einbaujahr_der_Lager          : OPTIONAL Jahr;
   Hersteller                    : OPTIONAL STRING(15);
   Kritische_Temperatur_Winter   : OPTIONAL Grad_Celsius;
   Kritische_Temperatur_Sommer   : OPTIONAL Grad_Celsius;
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
   hat_Baustoff_Bauwerk          : OPTIONAL SET [1:?] OF Baustoff_Bauwerk;
INVERSE
   von_Brueckenfeld_Stuetzung    : Brueckenfeld_Stuetzung FOR hat_Lager;
END_ENTITY;

ENTITY Fahrbahnuebergang
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Art_Fahrbahnuebergang         : OPTIONAL STRING(15);
   Anzahl_Fahrbahnuebergaenge    : OPTIONAL INTEGER;
   Anzahl_der_Lamellen           : OPTIONAL INTEGER;
   Gesamtdehnweg                 : OPTIONAL Millimeter;
   Hersteller_Fahrbahnuebergaenge: OPTIONAL STRING(15);
   Typenbez_Fahrbahnuebergaenge  : OPTIONAL STRING(80);
   regelgepr_Fahrbahnuebergaenge : OPTIONAL STRING(15);
   Einbauort_Fahrbahnuebergaenge : OPTIONAL STRING;
   Einbaujahr_Fahrbahnuebergaenge: OPTIONAL Jahr;
   Konstruktionslaenge_Uebergang : OPTIONAL Meter;
   Wartungsg_Fahrbahnuebergaenge : OPTIONAL STRING(15);
   Kritische_Temperatur_Winter   : OPTIONAL Grad_Celsius;
   Kritische_Temperatur_Sommer   : OPTIONAL Grad_Celsius;
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
   hat_Baustoff_Bauwerk          : OPTIONAL SET [1:?] OF Baustoff_Bauwerk;
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk_abstrakt;
END_ENTITY;

ENTITY Kappe
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Einbauort_Kappe               : OPTIONAL STRING;
   Konstruktion_Kappe            : OPTIONAL STRING(15);
   Verankerung_Kappe             : OPTIONAL STRING(15);
   groesste_Blocklaenge          : OPTIONAL Meter;
   Kappenlaenge                  : OPTIONAL Meter;
   Breite_Kappe                  : OPTIONAL Meter;
   Einbaujahr_Kappe              : OPTIONAL Jahr;
   Bemerkungen_zur_Kappe         : OPTIONAL STRING;
--- Relationen :
   hat_Baustoff_Bauwerk          : OPTIONAL SET [1:?] OF Baustoff_Bauwerk;
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk_abstrakt;
END_ENTITY;

ENTITY Brueckenseile_und_kabel
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Seilart                       : OPTIONAL STRING(15);
   Hersteller                    : OPTIONAL STRING(15);
   Tragfunktion                  : OPTIONAL STRING(15);
   Seillaenge                    : OPTIONAL Meter;
   Seildurchmesser               : OPTIONAL Millimeter;
   Seilquerschnitt_metallisch    : OPTIONAL Quadratmillimeter;
   Drahtfestigkeit               : OPTIONAL Newton_pro_Quadratmillimeter;
   Seilkraft                     : OPTIONAL Kilonewton;
   Verformungsmodul              : OPTIONAL Newton_pro_Quadratmillimeter;
   Schlaglaenge                  : OPTIONAL Millimeter;
   Gesamtgewicht                 : OPTIONAL Tonnen;
   Seilverfuellmittel            : OPTIONAL STRING(15);
   Seilaufbau                    : OPTIONAL STRING(15);
   Oberflaechenbeh_des_Drahtes   : OPTIONAL STRING(15);
   Oberflaechenbeh_Seilaufbau    : OPTIONAL STRING(15);
   Vergusshuelse_Seilkopf        : OPTIONAL STRING(15);
   Werkstoff_Vergusshuelse       : OPTIONAL STRING(15);
   Seilverguss                   : OPTIONAL STRING(15);
   Armaturen                     : OPTIONAL STRING(15);
   schwingungsdaempf_Massnahmen  : OPTIONAL STRING(15);
   Bemerkungen_zu_Brueckenseile  : OPTIONAL STRING;
--- Relationen :
   hat_Baustoff_Bauwerk          : OPTIONAL SET [1:?] OF Baustoff_Bauwerk;
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk_abstrakt;
END_ENTITY;

ENTITY Abdichtungen
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Einbauort_Abdichtungen        : OPTIONAL STRING;
   Unterlage                     : OPTIONAL STRING(15);
   Vorbereitung_der_Unterlage    : OPTIONAL STRING(15);
   Behandlung_der_Unterlage      : OPTIONAL STRING(15);
   Abdichtung                    : OPTIONAL STRING(15);
   Schutzschicht                 : OPTIONAL STRING(15);
   Dicke_Schutzschicht           : OPTIONAL Zentimeter;
   Einbaujahr_Abdichtungen       : OPTIONAL Jahr;
   Flaeche_Abdichtungen          : OPTIONAL Quadratmeter;
   Hersteller_Abdichtungen       : OPTIONAL STRING(80);
   Ausfuehr_Firma_Abdichtungen   : OPTIONAL STRING(80);
   Bemerkungen_zu_Abdichtungen   : OPTIONAL STRING;
--- Relationen :
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk_abstrakt;
END_ENTITY;

ENTITY statisches_System_Tragfaehigkt
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   stat_System_in_Bauwerksachse  : OPTIONAL STRING(15);
   stat_System_quer_zu_Bauw_achse: OPTIONAL STRING(15);
   Sonderabtragungsrichtung      : OPTIONAL STRING(15);
   Ersatzstuetzweite             : OPTIONAL REAL(7);
   Tragfaehigkeit                : OPTIONAL STRING(15);
   Bemessungsfahrzeug_Hauptspur  : OPTIONAL Tonnen;
   Bemessungsfahrzeug_Nebenspur  : OPTIONAL Tonnen;
   Sperrung_fuer_Schwertransporte: OPTIONAL BOOLEAN;
   statischer_Auslastungsgrad    : OPTIONAL Prozent;
   Bemessungslast_Kraft          : OPTIONAL Kilonewton;
   Bemessungslast_Druck          : OPTIONAL Kilonewton_pro_Quadratmeter;
   Einstufungsjahr               : OPTIONAL Jahr;
   Massgeb_Tragfaehigkeitseinstuf: OPTIONAL BOOLEAN;
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk_abstrakt;
END_ENTITY;

ENTITY Baustoff_Bauwerk
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Baustoff                      : OPTIONAL STRING(15);
   Hauptbaustoff                 : OPTIONAL INTEGER;
   Festigkeitsklasse_des_Betons  : OPTIONAL STRING(15);
   Expositionsklasse             : OPTIONAL STRING(80);
   Groesstkorn_Betonzuschlaege   : OPTIONAL STRING(15);
   Konsistenz                    : OPTIONAL STRING(15);
   Baustoffguete_Baustahl        : OPTIONAL STRING(15);
   Baustoffguete_Holz            : OPTIONAL STRING(15);
   Verbindungsmittel             : OPTIONAL STRING(15);
   Zement                        : OPTIONAL STRING(15);
   Zementgehalt                  : OPTIONAL Kilogramm_pro_Kubikmeter;
   Betonzuschlag                 : OPTIONAL STRING;
   Betonzusatz                   : OPTIONAL STRING;
   Oberflaeche_des_Betons        : OPTIONAL STRING(15);
   Betonstahlguete               : OPTIONAL STRING(15);
   Fertigteile                   : OPTIONAL STRING(15);
   Lieferfirma                   : OPTIONAL STRING(80);
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
   hat_Korrosionsschutzbeschichtg: OPTIONAL Korrosionsschutzbeschichtungen;
INVERSE
   von_Ausstattung               : SET [0:1] OF Ausstattung
                                       FOR hat_Baustoff_Bauwerk;
   von_Bruecke                   : SET [0:?] OF Bruecke
                                       FOR hat_Baustoff_Bauwerk;
   von_Brueckenseile_und_kabel   : SET [0:1] OF Brueckenseile_und_kabel
                                       FOR hat_Baustoff_Bauwerk;
   von_Erd_und_Felsanker         : SET [0:1] OF Erd_und_Felsanker
                                       FOR hat_Baustoff_Bauwerk;
   von_Fahrbahnuebergang         : SET [0:1] OF Fahrbahnuebergang
                                       FOR hat_Baustoff_Bauwerk;
   von_Gruendungen               : SET [0:1] OF Gruendungen
                                       FOR hat_Baustoff_Bauwerk;
   von_Kappe                     : SET [0:1] OF Kappe
                                       FOR hat_Baustoff_Bauwerk;
   von_Lager                     : SET [0:1] OF Lager
                                       FOR hat_Baustoff_Bauwerk;
   von_Schutzeinrichtungen       : SET [0:1] OF Schutzeinrichtungen
                                       FOR hat_Baustoff_Bauwerk;
   von_Segment_Laermschutzbauwerk: SET [0:1] OF Segment_Laermschutzbauwerk
                                       FOR hat_Baustoff_Bauwerk;
   von_Segment_Stuetzbauwerk     : SET [0:1] OF Segment_Stuetzbauwerk
                                       FOR hat_Baustoff_Bauwerk;
   von_Tunnel_Trogbauwerk        : SET [0:?] OF Tunnel_Trogbauwerk
                                       FOR hat_Baustoff_Bauwerk;
   von_sonstiges_Bauwerk         : SET [0:?] OF sonstiges_Bauwerk
                                       FOR hat_Baustoff_Bauwerk;
   von_Verkehrszeichenbruecke    : SET [0:?] OF Verkehrszeichenbruecke
                                       FOR hat_Baustoff_Bauwerk;
END_ENTITY;

ENTITY Gestaltungen
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Art_Gestaltung                : OPTIONAL STRING;
   Einbauort_Gestaltung          : OPTIONAL STRING;
   Bemerkungen_zur_Gestaltung    : OPTIONAL STRING;
--- Relationen :
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk_abstrakt;
END_ENTITY;

ENTITY Leitungen_an_Bauwerken
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Leitungsarten_an_Bauwerken    : OPTIONAL STRING(15);
   Einbauort_Leitungen           : OPTIONAL STRING;
   Durchmesser                   : OPTIONAL Millimeter;
   Betreiber_der_Leitung         : OPTIONAL STRING;
   Buendelung                    : OPTIONAL STRING(15);
   Anzahl_der_Leitungen_an_Bw    : OPTIONAL INTEGER;
   Nutzungsvereinbarung          : OPTIONAL STRING(15);
   Bemerkungen_zu_Leitungen_an_Bw: OPTIONAL STRING;
--- Relationen :
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk_abstrakt;
END_ENTITY;

ENTITY Verfuellungen
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Einbauort_Verfuellung         : OPTIONAL STRING;
   Schaden_Schadenursache        : OPTIONAL STRING;
   Fuellgut_Fuellmaterial        : OPTIONAL STRING(15);
   Hersteller_Produktbezeichnung : OPTIONAL STRING(15);
   Einbaujahr_Verfuellung        : OPTIONAL Jahr;
   Ausfuehrende_Firma_Verfuellung: OPTIONAL STRING(80);
   Bemerkungen_zur_Verfuellung   : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk FOR hat_Verfuellungen;
END_ENTITY;

ENTITY Betonersatzsystem
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Art_des_Betonersatzsystems    : OPTIONAL STRING(15);
   Einbauort_Betonersatzsystem   : OPTIONAL STRING;
   Lieferfirma_Produktbezeichnung: OPTIONAL STRING(15);
   Ausfuehrende_Firma_Betonersatz: OPTIONAL STRING(80);
   Bezeichnung_zum_Betonersatz   : OPTIONAL STRING(80);
   Einbaujahr_Betonersatzsystem  : OPTIONAL Jahr;
   Flaeche_Betonersatzsystem     : OPTIONAL Quadratmeter;
   Bemerkungen_zum_Betonersatz   : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk FOR hat_Betonersatzsystem;
END_ENTITY;

ENTITY Oberflaechenschutzsystem
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Art_des_Systems               : OPTIONAL STRING(15);
   Art_der_schuetzenden_Oberfl   : OPTIONAL STRING(15);
   Hersteller_Produktbezeichnung : OPTIONAL STRING(15);
   Bezeichnung                   : OPTIONAL STRING(80);
   Einbauort                     : OPTIONAL STRING;
   Verbrauch                     : OPTIONAL Kilogramm_pro_Quadratmeter;
   Ausfuehrende_Firma            : OPTIONAL STRING(80);
   Einbaujahr                    : OPTIONAL Jahr;
   Flaeche                       : OPTIONAL Quadratmeter;
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk FOR hat_Oberflaechenschutzsystem;
END_ENTITY;

ENTITY Korrosionsschutzbeschichtungen
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Art_des_Korrosionsschutzes    : OPTIONAL STRING(15);
   Bauteiloberflaeche            : OPTIONAL STRING(15);
   Oberflaechenvorbereitung      : OPTIONAL STRING(15);
   Hauptbindemittel_d_Grundbesch : OPTIONAL STRING(15);
   Hauptpigment_der_Grundbesch   : OPTIONAL STRING(15);
   Hauptbindemittel_der_Deckbesch: OPTIONAL STRING(15);
   Hauptpigment_der_Deckbesch    : OPTIONAL STRING(15);
   Anzahl_der_Grundbeschichtungen: OPTIONAL INTEGER;
   Anzahl_der_Deckbeschichtungen : OPTIONAL INTEGER;
   Gesamtschichtdicke            : OPTIONAL Mikrometer;
   Applikation                   : OPTIONAL STRING(15);
   Einbauort_Schutzbeschichtung  : OPTIONAL STRING;
   Ausfuehrende_Firma_Besch      : OPTIONAL STRING(80);
   Bezeichnung_Schutzbeschichtung: OPTIONAL STRING(80);
   Einbaujahr_Korrosionsschutzb  : OPTIONAL Jahr;
   Beschichtete_Flaeche          : OPTIONAL Quadratmeter;
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Baustoff_Bauwerk          : Baustoff_Bauwerk FOR hat_Korrosionsschutzbeschichtg;
END_ENTITY;

ENTITY Reaktionsharzgeb_Duennbelaege
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Bauteilnummer                 : OPTIONAL STRING(15);
   Einbauort                     : OPTIONAL STRING;
   Vorbereitung_der_Unterlage    : OPTIONAL STRING(15);
   Bindemittel_der_Grundierung   : OPTIONAL STRING(15);
   Bindemittel_1_u_2_Deckschicht : OPTIONAL STRING(15);
   Abstreumittel_ob_Deckschicht  : OPTIONAL STRING(15);
   Gesamtdicke                   : OPTIONAL Millimeter;
   Flaeche                       : OPTIONAL Quadratmeter;
   Einbaujahr                    : OPTIONAL Jahr;
   Ausfuehrende_Firma            : OPTIONAL STRING(80);
   Bemerkungen                   : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Teilbauwerk               : SET [1:?] OF Teilbauwerk FOR hat_Reaktionsharzgeb_Duennbel;
END_ENTITY;

ENTITY Tunnelbeleuchtung
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Lichtraster                   : OPTIONAL STRING(15);
   Leuchtdichte                  : OPTIONAL cd_pro_Quadratmeter;
   Beleuchtungsstaerke           : OPTIONAL Lux;
   Beleuchtungsart               : OPTIONAL STRING(15);
   Lampenart                     : OPTIONAL STRING(15);
   Bemerkungen_zur_Tunnelbeleucht: OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Tunnel_Trogbauwerk        : SET [1:?] OF Tunnel_Trogbauwerk FOR hat_Tunnelbeleuchtung;
END_ENTITY;

ENTITY Tunnellueftung
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Lueftungsart_Normalbetrieb    : OPTIONAL STRING(15);
   Lueftungsart_Brandfall        : OPTIONAL STRING(15);
   Abluftkanaele                 : OPTIONAL STRING(15);
   Zuluftkanaele                 : OPTIONAL STRING(15);
   Abluftkamin                   : OPTIONAL STRING(15);
   Luefterdecke                  : OPTIONAL STRING(15);
   Bemerkungen_zur_Tunnellueftung: OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Tunnel_Trogbauwerk        : SET [1:?] OF Tunnel_Trogbauwerk FOR hat_Tunnellueftung;
END_ENTITY;

ENTITY Tunnelsicherheit
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Gefahrengueter_zugelassen     : OPTIONAL STRING(15);
   Pannenbucht                   : OPTIONAL STRING(15);
   Anzahl_Pannenbuchten          : OPTIONAL INTEGER;
   Abstand_Pannenbucht           : OPTIONAL Meter;
   Wendebucht                    : OPTIONAL STRING(15);
   Anzahl_Wendebuchten           : OPTIONAL INTEGER;
   Abstand_Wendebucht            : OPTIONAL Meter;
   Ueberfahrt                    : OPTIONAL STRING(15);
   Anzahl_Ueberfahrten           : OPTIONAL INTEGER;
   Abstand_Ueberfahrt            : OPTIONAL Meter;
   Notrufstation                 : OPTIONAL STRING(15);
   Anzahl_Notrufstationen        : OPTIONAL INTEGER;
   Abstand_Notrufstation         : OPTIONAL Meter;
   Automatische_Brandmeldeanlagen: OPTIONAL STRING(15);
   Feuerloeschstationen          : OPTIONAL STRING(15);
   Anzahl_Feuerloeschstationen   : OPTIONAL INTEGER;
   Abstand_Feuerloeschstation    : OPTIONAL Meter;
   Hydranten                     : OPTIONAL STRING(15);
   Anzahl_Hydranten              : OPTIONAL INTEGER;
   Abstand_Hydranten             : OPTIONAL Meter;
   Fluchtwege_Querstollen        : OPTIONAL STRING(15);
   Anzahl_Fluchtwege_Querstollen : OPTIONAL INTEGER;
   Abstand_Fluchtwege_Querstollen: OPTIONAL Meter;
   Fluchtwege_Fluchtstollen      : OPTIONAL STRING(15);
   Anzahl_Fluchtwege_Fluchtstoll : OPTIONAL INTEGER;
   Abstand_Fluchtwege_Fluchtstoll: OPTIONAL Meter;
   Videoueberwachung             : OPTIONAL STRING(15);
   Funk                          : OPTIONAL STRING(15);
   Lautsprecher                  : OPTIONAL STRING(15);
   Bemerkungen_zur_Tunnelsicherh : OPTIONAL STRING;
--- Relationen :
 INVERSE
   von_Tunnel_Trogbauwerk        : SET [1:?] OF Tunnel_Trogbauwerk FOR hat_Tunnelsicherheit;
END_ENTITY;

ENTITY Tunnel_Verkehrseinrichtungen
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   Verkehrseinrichtung_vorhanden : OPTIONAL STRING(15);
   Verkehrserfassung             : OPTIONAL STRING(15);
   LZA_vor_dem_Tunnel            : OPTIONAL STRING(15);
   Wechselverk_Zeich_v_d_Tunnel  : OPTIONAL STRING(15);
   Wechselverk_Zeichen_im_Tunnel : OPTIONAL STRING(15);
   Fahrstreifensignale           : OPTIONAL STRING(15);
   Schrankenanlage               : OPTIONAL STRING(15);
   Bemerkungen_zu_Verkehrseinr   : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Tunnel_Trogbauwerk        : SET [1:?] OF Tunnel_Trogbauwerk FOR hat_Tunnel_Verkehrseinrichtgn;
END_ENTITY;

ENTITY Tunnel_Zentrale_Anlagen
SUBTYPE OF (Objekt_mit_ID);
--- Attribute :
   gesamte_elektrische_Leistung  : OPTIONAL Kilowatt;
   Ersatzstromversorgung         : OPTIONAL STRING(15);
   Ersatzstromversorgung_Leistung: OPTIONAL Kilowatt;
   Betriebsgebaeude              : OPTIONAL STRING(15);
   Betriebsgebaeude_Anzahl       : OPTIONAL INTEGER;
   Lueftergebaeude               : OPTIONAL STRING(15);
   Lueftergebaeude_Anzahl        : OPTIONAL INTEGER;
   Hebeanlage                    : OPTIONAL STRING(15);
   Bemerkungen_zu_zentr_Anlagen  : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Tunnel_Trogbauwerk        : SET [1:?] OF Tunnel_Trogbauwerk FOR hat_Tunnel_Zentrale_Anlagen;
END_ENTITY;

END_SCHEMA; -- Bauwerke
SCHEMA Entwurf;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Überarbeitung gemäß Dokument N0067

29.06.2004 - 1.006 (1.009)
Überarbeitung gemäß Dokument N0060

03.09.2003 - 1.005 (1.008)
Überarbeitung gemäß Dokument N0051

31.05.2002 - 1.004 (1.007)
Überarbeitung gemäß Dokument N0030

12.09.2001 - 1.003 (1.004)
Überarbeitung in Folge des Änderungsantrags A0006

11.12.2000 - 1.002 (1.002)
Symbolische Verweise integriert für Netzknoten

08.10.2000 - 1.001 (1.001)
Anbindung an die Schemata allgemeine Geometrieobjekte
und Grunderwerb

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Netzknoten_abstrakt,Knotenpunktsform);

REFERENCE FROM Ingenieurbauwerke (Bauwerkseinzelheiten);

REFERENCE FROM Ausstattung (Beschilderung_Lichtsignalanl,Fahrbahnmarkierungen,
                            Schutz_und_Leiteinrichtungen);

REFERENCE FROM Geometrieschema (Punktobjekt_Modell,Linienobjekt_Modell);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,OKSTRA_Schluesseltabelle,Meter,Kilometer,Groesse,
                                   Kilometer,Groesse,Winkel,Stundenkilometer,Prozent);

REFERENCE FROM Allgemeine_Geometrieobjekte (Dreieck,allgemeines_Punktobjekt,
          allgemeines_Linienobjekt,allgemeines_Flaechenobjekt);

REFERENCE FROM Kataster (ALKIS_Objekt_Punkt,ALKIS_Objekt_Linie,ALKIS_Objekt_Flaeche);

ENTITY Trasse
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
   hat_Netzknoten                : OPTIONAL SET [1:?] OF Netzknoten_abstrakt; (* OD *)
   hat_Achse                     : OPTIONAL SET [1:?] OF Achse;
   hat_Entwurfsparameter         : OPTIONAL SET [1:?] OF Entwurfsparameter;
   hat_Laengsschnitt             : OPTIONAL SET [1:?] OF Laengsschnitt;
   hat_Trassenkoerper            : OPTIONAL SET [1:?] OF Trassenkoerper;
   hat_Sichtweiten               : OPTIONAL SET [1:?] OF Sichtweiten;
END_ENTITY;

ENTITY Achse
SUBTYPE OF (allgemeine_Eigenschaften,Ausgangsdaten_QP);
   (* BEMERKUNG Reihenfolge anpassen *)
--- Attribute :
--- Relationen :
   hat_Achselement               : LIST [1:?] OF Achselement;
INVERSE
   gehoert_zu_Trasse             : Trasse FOR hat_Achse;
   hat_Laengsschnitt             : SET [0:1] OF Laengsschnitt
                                             FOR gehoert_zu_Achse;
   hat_Trassenkoerper            : SET [0:1] OF Trassenkoerper
                                             FOR gehoert_zu_Achse;
   hat_Sichtweiten               : SET [0:?] OF Sichtweiten
                                             FOR gehoert_zu_Achse;
   von_Kreuzungs_o_Einmuend_plang: SET [0:?] OF Kreuzungs_o_Einmuendungsplang
                                             FOR hat_Achse;
   von_Abstand_Achse_Achse       : SET [0:?] OF Abstand_Achse_Achse
                                             FOR hat_zweite_Achse;
   hat_Entwurfsparameter         : SET [0:1] OF Entwurfsparameter
                                             FOR gehoert_zu_Achse;
END_ENTITY;

ENTITY Achselement
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
   Elementtyp                    : Achselementtyp;
   Anfangsstation_rechnerisch    : Meter;
   Verwaltungsstation_Betriebskm : Kilometer;
   Laenge                        : Meter;
   Richtung                      : Winkel;
   Parameter                     : Groesse;
   Radius_zu_Beginn              : Meter;
   Radius_am_Ende                : Meter;
--- Relationen :
   beginnt_bei_Achshauptpunkt    : Achshauptpunkt;
   endet_bei_Achshauptpunkt      : Achshauptpunkt;
INVERSE
   gehoert_zu_Achse              : SET [0:1] OF Achse FOR hat_Achselement;
END_ENTITY;

ENTITY Achselementtyp;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Achselementtyp VALUES (1,'Gerade')
INSERT INTO Achselementtyp VALUES (2,'Kreisbogen, tangential')
INSERT INTO Achselementtyp VALUES (12,'Klothoide')

   END_SQL
*)

ENTITY Achshauptpunkt
SUBTYPE OF (Punktobjekt_Modell);
--- Attribute :
--- Relationen :
INVERSE
   Beginn_von_Achselement        : SET [0:?] OF Achselement
                                             FOR beginnt_bei_Achshauptpunkt;
   Ende_von_Achselement          : SET [0:?] OF Achselement
                                             FOR endet_bei_Achshauptpunkt;
   zu_Kreuzungs_o_Einmuendplanung: SET [0:?] OF Kreuzungs_o_Einmuendungsplang
                                             FOR hat_Achshauptpunkt;
END_ENTITY;

ENTITY Kreuzungs_o_Einmuendungsplang
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
   Netzknotennummer              : OPTIONAL STRING(7);
   Knotenpunktsform              : OPTIONAL Knotenpunktsform;
--- Relationen :
   hat_Achse                     : SET [1:?] OF Achse;
   hat_DGM                       : OPTIONAL DGM;
   hat_Achshauptpunkt            : OPTIONAL Achshauptpunkt;
   hat_Gradiente                 : OPTIONAL SET[1:?] OF Gradiente;
END_ENTITY;

ENTITY DGM
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
   hat_Dreiecke                  : OPTIONAL SET[1:?] OF Dreieck;
INVERSE
   gehoert_zu_Kreuz_o_Einmplang  : SET [0:?] OF Kreuzungs_o_Einmuendungsplang
                                             FOR hat_DGM;
END_ENTITY;

ENTITY Laengsschnitt  -- Der Laengsschnitt beschreibt einen Hoehenverlauf.
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
   gehoert_zu_Achse              : Achse;
   hat_kreuzende_Bauw_o_baul_Anl : OPTIONAL SET [1:?]
                                            OF kreuzende_Bauwerke_o_baul_Anl;
   hat_Gelaendehorizonte         : OPTIONAL SET [1:?] OF Gelaendehorizonte;
   hat_Gradiente                 : OPTIONAL SET [1:?] OF Gradiente;
INVERSE
   gehoert_zu_Trasse             : Trasse FOR hat_Laengsschnitt;
END_ENTITY;

ENTITY Gelaendehorizonte
SUBTYPE OF (Laengsschnittlinie);
--- Attribute :
--- Relationen :
INVERSE
   gehoert_zu_Laengsschnitt      : Laengsschnitt FOR hat_Gelaendehorizonte;
END_ENTITY;

ENTITY Gradiente
SUBTYPE OF (Laengsschnittlinie);
--- Attribute :
--- Relationen :
INVERSE
   gehoert_zu_Laengsschnitt      : Laengsschnitt FOR hat_Gradiente;
   zu_Hoehe_Gradiente            : SET [0:?] OF Hoehe_Gradiente
                                             FOR hat_Gradiente;
   zu_Kreuzungs_o_Einmuendungspl : SET [0:?] OF Kreuzungs_o_Einmuendungsplang
                                             FOR hat_Gradiente;
END_ENTITY;

ENTITY kreuzende_Bauwerke_o_baul_Anl
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
   hat_Schnittgeometrie          : OPTIONAL SET [1:?] OF Schnittgeometrie;
   hat_Bauwerkseinzelheiten      : OPTIONAL Bauwerkseinzelheiten;
INVERSE
   gehoert_zu_Laengsschnitt      : SET [1:?] OF Laengsschnitt
                                             FOR hat_kreuzende_Bauw_o_baul_Anl;
WHERE
   Geometrie_oder_Einzelheiten   : EXISTS(hat_Schnittgeometrie)
                                   OR EXISTS(hat_Bauwerkseinzelheiten);
END_ENTITY;

ENTITY Schnittgeometrie
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Schnittstation                : Meter;
   Schnitthoehe                  : Meter;
   Schnittwinkel_horizontal      : Winkel;
   Laengsneigung_kreuzend_Bauwerk: Winkel;
--- Relationen :
   hat_Schnittpolygone           : SET [1:?] OF Schnittpolygone;
   hat_Mindestabstandspolygone   : OPTIONAL SET [1:?]
                                            OF Mindestabstandspolygon;
   hat_Maximalabstandspolygone   : OPTIONAL SET [1:?]
                                            OF Maximalabstandspolygon;
INVERSE
   geh_zu_kreuz_Bauw_o_baul_Anl  : SET [0:?] OF kreuzende_Bauwerke_o_baul_Anl
                                             FOR hat_Schnittgeometrie;
END_ENTITY;

ENTITY Schnittpolygone
SUBTYPE OF (Polygon);
--- Attribute :
--- Relationen :
INVERSE
   gehoert_zu_Schnittgeometrie   : SET [1:?] OF Schnittgeometrie
                                             FOR hat_Schnittpolygone;
END_ENTITY;

ENTITY Mindestabstandspolygon
SUBTYPE OF (Polygon);
--- Attribute :
--- Relationen :
INVERSE
   gehoert_zu_Schnittgeometrie   : SET [1:?] OF Schnittgeometrie
                                             FOR hat_Mindestabstandspolygone;
END_ENTITY;

ENTITY Maximalabstandspolygon
SUBTYPE OF (Polygon);
--- Attribute :
--- Relationen :
INVERSE
   gehoert_zu_Schnittgeometrie   : SET [1:?] OF Schnittgeometrie
                                             FOR hat_Maximalabstandspolygone;
END_ENTITY;

ENTITY Polygon
ABSTRACT SUPERTYPE OF (ONEOF(Schnittpolygone,Maximalabstandspolygon,
                             Mindestabstandspolygon))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_QP_Punkte                 : LIST [1:?] OF QP_Punkte;
END_ENTITY;

ENTITY Laengsschnittlinie
ABSTRACT SUPERTYPE OF (ONEOF(Gelaendehorizonte,Gradiente))
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
   abs_Abstand                   : OPTIONAL REAL(16);
--- Relationen :
   hat_LS_Koor                   : LIST [1:?] OF LS_Koor;
   hat_Breite                    : OPTIONAL SET [1:?] OF Breite;
WHERE
   Bezug_eindeutig               : NOT EXISTS(abs_Abstand) OR NOT EXISTS(hat_Breite);
END_ENTITY;

ENTITY LS_Koor
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
   Station                       : Meter;
   Hoehe                         : Meter;
--- Relationen :
   folgt_auf_LS_Koor             : OPTIONAL Punktfolge;
INVERSE
   gehoert_zu_Laengsschnittlinie : SET [0:?] OF Laengsschnittlinie
                                             FOR hat_LS_Koor;
END_ENTITY;

ENTITY Punktfolge
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Tangente_Gerade           : Tangente_Gerade;
INVERSE
   LS_Koor_Nachfolger            : LS_Koor FOR folgt_auf_LS_Koor;
END_ENTITY;

ENTITY Tangentenfolge
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Ausrundung                : OPTIONAL Ausrundung;
INVERSE
   Tangente_Gerade_Nachfolger    : Tangente_Gerade FOR
                                                   folgt_auf_Tangente_Gerade;
END_ENTITY;

ENTITY Ausrundung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Ausrundungstyp                : Ausrundungstyp;
   Ausrundungsparameter          : Groesse;
--- Relationen :
INVERSE
   gehoert_zu_Tangentenfolge     : SET [0:1] OF Tangentenfolge
                                             FOR hat_Ausrundung;
END_ENTITY;

ENTITY Ausrundungstyp;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Ausrundungstyp VALUES (13,'Parabel 2. Grades')
INSERT INTO Ausrundungstyp VALUES (14,'Parabel 3. Grades mit langem Teil vor TS')
INSERT INTO Ausrundungstyp VALUES (15,'Parabel 3. Grades mit langem Teil hinter TS')

   END_SQL
*)

ENTITY Tangente_Gerade
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   folgt_auf_Tangente_Gerade     : OPTIONAL Tangentenfolge;
INVERSE
   gehoert_zu_Punktfolge         : SET [0:1] OF Punktfolge
                                             FOR hat_Tangente_Gerade;
END_ENTITY;

ENTITY Volumen_aus_QP
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
   Station_1                     : Meter;
   Station_2                     : Meter;
--- Relationen :
   wird_begrenzt_von_Profillinie : OPTIONAL SET [1:4] OF Profillinien;
INVERSE
   von_Trassenkoerper            : SET [0:?] OF Trassenkoerper FOR hat_Volumen;
END_ENTITY;

ENTITY Oberflaeche
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
   Art_der_Oberflaeche           : INTEGER;
   Station_1                     : Meter;
   Station_2                     : Meter;
--- Relationen :
   liegt_auf_Profillinie         : Profillinien;
   beginnt_bei_QP_Punkt          : QP_Punkte;
   endet_bei_QP_Punkt            : QP_Punkte;
INVERSE
   von_Trassenkoerper            : SET [0:?] OF Trassenkoerper
                                             FOR hat_Oberflaeche;
END_ENTITY;

ENTITY Trassenkoerper
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Volumen                   : OPTIONAL SET [1:?] OF Volumen_aus_QP;
   hat_Oberflaeche               : OPTIONAL SET [1:?] OF Oberflaeche;
   hat_Deckenbuch                : OPTIONAL Deckenbuch;
   hat_Querprofil                : OPTIONAL LIST [1:?] OF Querprofil;
   gehoert_zu_Achse              : Achse;
INVERSE
   gehoert_zu_Trasse             : Trasse FOR hat_Trassenkoerper;
END_ENTITY;

ENTITY dynamisches_Querprofil
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
--- Relationen:
   hat_Zuordnung_Ausgangsdaten   : OPTIONAL SET [1:?] OF Zuordnung_Ausgangsdaten;
   hat_generellen_RQ_Code        : RQ_Code;
   hat_lokalen_RQ_Code           : OPTIONAL LIST [1:?] OF RQ_Code;
   zu_Querprofil                 : Querprofil;
END_ENTITY;

ENTITY RQ_Code
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   RQ_Aufruf                     : STRING;
--- Relationen:
   hat_RQ_Code_Modul             : SET [1:?] OF RQ_Code_Modul;
INVERSE
   ist_genereller_RQ_Code        : SET [0:?] OF dynamisches_Querprofil
                                             FOR hat_generellen_RQ_Code;
   ist_lokaler_RQ_Code           : SET [0:?] OF dynamisches_Querprofil
                                             FOR hat_lokalen_RQ_Code;
END_ENTITY;

ENTITY RQ_Code_Modul
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   RQ_Modulname                  : STRING;
   Code                          : STRING; -- zeichengenauer RQ-Code
--- Relationen:
INVERSE
   zu_RQ_Code                    : SET [0:?] OF RQ_Code FOR hat_RQ_Code_Modul;
END_ENTITY;

ENTITY Zuordnung_Ausgangsdaten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Zuordnungsname                : STRING;
--- Relationen:
   hat_Ausgangsdaten_links_beide : Ausgangsdaten_QP;
   hat_Ausgangsdaten_rechts      : OPTIONAL Ausgangsdaten_QP;
INVERSE
   zu_dynamischem_Querprofil     : SET [0:?] OF dynamisches_Querprofil
                                             FOR hat_Zuordnung_Ausgangsdaten;
END_ENTITY;

ENTITY Ausgangsdaten_QP
ABSTRACT SUPERTYPE OF (ONEOF(Abstand_Achse_Achse,Achse,Achsstationswerte,
                              Breite,Hochbord,Hoehenzuege,Profillinien,Querneigung))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
--- Relationen:
INVERSE
   in_Zuordnung_links_beide      : SET [0:?] OF Zuordnung_Ausgangsdaten
                                             FOR hat_Ausgangsdaten_links_beide;
   in_Zuordnung_rechts           : SET [0:?] OF Zuordnung_Ausgangsdaten
                                             FOR hat_Ausgangsdaten_rechts;
END_ENTITY;

ENTITY Querprofil
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Station                       : Meter;
--- Relationen :
   hat_Schnittebene              : OPTIONAL Schnittebene;
   hat_Profillinien              : SET [1:?] OF Profillinien;
   hat_QP_Punkte                 : OPTIONAL SET [1:?] OF QP_Punkte;
INVERSE
   gehoert_zu_Trassenkoerper     : SET [0:1] OF Trassenkoerper
                                             FOR hat_Querprofil;
   hat_dynamisches_Querprofil    : SET [0:?] OF dynamisches_Querprofil
                                             FOR zu_Querprofil;
END_ENTITY;

ENTITY QP_Punkte
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
   Abstand_zur_Achse             : REAL(16);
   Hoehe_NN                      : REAL(16);
--- Relationen :
INVERSE
   gehoert_zu_Profillinien       : SET [0:?] OF Profillinien FOR hat_QP_Punkte;
   gehoert_zu_Querprofil         : SET [0:?] OF Querprofil FOR hat_QP_Punkte;
   Beginn_von_Oberflaeche        : SET [0:?] OF Oberflaeche
                                             FOR beginnt_bei_QP_Punkt;
   Ende_von_Oberflaeche          : SET [0:?] OF Oberflaeche
                                             FOR endet_bei_QP_Punkt;
   gehoert_zu_Polygon            : SET [0:?] OF Polygon FOR hat_QP_Punkte;
END_ENTITY;

ENTITY Profillinien
SUBTYPE OF (allgemeine_Eigenschaften,Ausgangsdaten_QP);
--- Attribute :
   Art                           : Art_des_Horizonts;
--- Relationen :
   hat_QP_Punkte                 : LIST [1:?] OF QP_Punkte;
INVERSE
   gehoert_zu_Querprofil         : SET [0:?] OF Querprofil
                                             FOR hat_Profillinien;
   gehoert_zu_Oberflaeche        : SET [0:?] OF Oberflaeche
                                             FOR liegt_auf_Profillinie;
   begrenzt_Volumen_aus_QP       : SET [0:1] OF Volumen_aus_QP
                                             FOR wird_begrenzt_von_Profillinie;
END_ENTITY;

ENTITY Art_des_Horizonts;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_des_Horizonts VALUES (1,'Linie')
INSERT INTO Art_des_Horizonts VALUES (2,'Fläche')

   END_SQL
*)

ENTITY Schnittebene
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_SNT_Punkte                : OPTIONAL LIST [1:?] OF SNT_Punkt;
INVERSE
   gehoert_zu_Querprofil         : SET [1:?] OF Querprofil
                                             FOR hat_Schnittebene;
END_ENTITY;

ENTITY SNT_Punkt
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Abstand                       : Meter;
   Richtungsaenderung            : REAL(16);
   korrespondierende_Achse       : OPTIONAL STRING(255);
   Naeherungsstation             : OPTIONAL Meter;
--- Relationen :
INVERSE
   gehoert_zu_Schnittebene       : SET [1:?] OF Schnittebene
                                             FOR hat_SNT_Punkte;
END_ENTITY;

ENTITY Deckenbuch
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
   Station_1                     : Meter;
   Station_2                     : Meter;
--- Relationen :
   hat_Spur_aus_Ausgangsdaten    : LIST [1:?] OF Spur_aus_Ausgangsdaten;
INVERSE
   gehoert_zu_Trassenkoerper     : SET [1:?] OF Trassenkoerper
                                             FOR hat_Deckenbuch;
END_ENTITY;

ENTITY Spur_aus_Ausgangsdaten
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
   hat_Querneigung               : OPTIONAL Querneigung;
   hat_Breite                    : Breite;
   hat_Hoehenzuege               : OPTIONAL Hoehenzuege;
   hat_Hochbord                  : OPTIONAL Hochbord;
INVERSE
   von_Deckenbuch                : SET [1:?] OF Deckenbuch
                                       FOR hat_Spur_aus_Ausgangsdaten;
   zu_BR_Punkt                   : SET [0:?] OF BR_Punkt
                                       FOR bez_auf_Spur_aus_Ausgangsdaten;
   ist_Fahrspur_zu               : SET [0:?] OF Sichtweiten
                                       FOR hat_Fahrspur;
   ist_Gegenspur_zu              : SET [0:?] OF Sichtweiten
                                       FOR hat_Gegenspur;
END_ENTITY;

ENTITY Breite
SUBTYPE OF (allgemeine_Eigenschaften,Ausgangsdaten_QP);
--- Attribute :
--- Relationen :
   hat_BR_Punkt                  : LIST [1:?] OF BR_Punkt;
INVERSE
   von_Spur_aus_Ausgangsdaten    : SET [0:?] OF Spur_aus_Ausgangsdaten
                                             FOR hat_Breite;
   gehoert_zu_Laengsschnittlinie : SET [0:?] OF Laengsschnittlinie
                                             FOR hat_Breite;
END_ENTITY;

ENTITY BR_Punktfolge
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Aufweitg_Verbreit_Verbind : Aufweitung_Verbreit_Verbind;
INVERSE
   vor_BR_Punkt                  : BR_Punkt FOR folgt_auf_BR_Punkt;
END_ENTITY;

ENTITY BR_Punkt
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Breite                        : OPTIONAL Meter;
   Station                       : Meter;
   Berechnung                    : Breitenberechnung;
--- Relationen :
   hat_Abstand_Achse_Achse       : OPTIONAL Abstand_Achse_Achse;
   hat_Abstand_Achse_Linie       : OPTIONAL Abstand_Achse_Linie;
   folgt_auf_BR_Punkt            : OPTIONAL BR_Punktfolge;
   bez_auf_Spur_aus_Ausgangsdaten: OPTIONAL Spur_aus_Ausgangsdaten;
INVERSE
   gehoert_zu_Breite             : Breite FOR hat_BR_Punkt;
WHERE
   genau_eine_Abstandsangabe : (EXISTS(Breite)
                                AND NOT EXISTS(hat_Abstand_Achse_Achse)
                                AND NOT EXISTS(hat_Abstand_Achse_Linie))
                               OR (EXISTS(hat_Abstand_Achse_Achse)
                                AND NOT EXISTS(Breite)
                                AND NOT EXISTS(hat_Abstand_Achse_Linie))
                               OR (EXISTS(hat_Abstand_Achse_Linie)
                                AND NOT EXISTS(Breite)
                                AND NOT EXISTS(hat_Abstand_Achse_Achse));
   (* BEDINGUNG (Breite IS NOT NULL AND hat_Abstand_Achse_Achse IS NULL
                  AND hat_Abstand_Achse_Linie IS NULL)
             OR (Breite IS NULL AND hat_Abstand_Achse_Achse IS NOT NULL
                  AND hat_Abstand_Achse_Linie IS NULL)
             OR (Breite IS NULL AND hat_Abstand_Achse_Achse IS NULL
                  AND hat_Abstand_Achse_Linie IS NOT NULL) *)
END_ENTITY;

ENTITY Breitenberechnung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Breitenberechnung VALUES (1,'Start')
INSERT INTO Breitenberechnung VALUES (2,'Ende')
INSERT INTO Breitenberechnung VALUES (0,'Zwischenwert')

   END_SQL
*)

ENTITY Aufweitung_Verbreit_Verbind
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Art_der_Verziehung            : Art_der_Verziehung;
   Tangentenlaenge               : OPTIONAL Meter;
--- Relationen :
INVERSE
   gehoert_zu_Breite_BR_Punkt    : SET [1:?] OF BR_Punktfolge
                                             FOR hat_Aufweitg_Verbreit_Verbind;
END_ENTITY;

ENTITY Art_der_Verziehung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_der_Verziehung VALUES (1,'Parabelfolge 2. Grades')
INSERT INTO Art_der_Verziehung VALUES (3,'Parabelfolge 2. Grades / Zwischengerade')
INSERT INTO Art_der_Verziehung VALUES (4,'Gerade')
INSERT INTO Art_der_Verziehung VALUES (6,'Keine')

   END_SQL
*)

ENTITY Abstand_Achse_Achse
SUBTYPE OF (Ausgangsdaten_QP);
--- Attribute :
   Naeherungsstation_auf_zw_Achse: Meter;
--- Relationen :
   hat_Lage_der_Knicklinie       : Lage_der_Knicklinie;
   hat_zweite_Achse              : Achse;
INVERSE
   von_BR_Punkt                  : SET [0:?] OF BR_Punkt
                                             FOR hat_Abstand_Achse_Achse;
END_ENTITY;

ENTITY Abstand_Achse_Linie
SUBTYPE OF (Linienobjekt_Modell);
--- Attribute :
--- Relationen :
INVERSE
   von_BR_Punkt                  : SET [0:?] OF BR_Punkt
                                             FOR hat_Abstand_Achse_Linie;
END_ENTITY;

ENTITY Lage_der_Knicklinie
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Typ_der_Knicklinie            : Typ_der_Knicklinie;
   Breite                        : OPTIONAL Meter;
--- Relationen :
INVERSE
   von_Abstand_Achse_Achse       : SET [0:?] OF Abstand_Achse_Achse
                                             FOR hat_Lage_der_Knicklinie;
END_ENTITY;

ENTITY Typ_der_Knicklinie;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Typ_der_Knicklinie VALUES (1,'Parallele / Breite zur zweiten Achse')
INSERT INTO Typ_der_Knicklinie VALUES (2,'Parallele / Breite zur Achse')
INSERT INTO Typ_der_Knicklinie VALUES (3,'Mittig mit Abstand zur Knicklinie')

   END_SQL
*)

ENTITY Hoehenzuege
SUBTYPE OF (allgemeine_Eigenschaften,Ausgangsdaten_QP);
--- Attribute :
--- Relationen :
   hat_HZ_Punkte                 : LIST [1:?] OF HZ_Punkt;
INVERSE
   von_Spur_aus_Ausgangsdaten    : SET [0:?] OF Spur_aus_Ausgangsdaten
                                             FOR hat_Hoehenzuege;
END_ENTITY;

ENTITY HZ_Punkt
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Station                       : Meter;
   Hoehe_fest                    : OPTIONAL Meter;
--- Relationen :
   hat_Hoehe_Gradiente           : OPTIONAL Hoehe_Gradiente;
   hat_Hoehe_Linie               : OPTIONAL Hoehe_Linie;
INVERSE
   gehoert_zu_Hoehenzug          : Hoehenzuege FOR hat_HZ_Punkte;
WHERE
   Bezug_eindeutig               : (EXISTS(Hoehe_fest)
                                    AND NOT EXISTS(hat_Hoehe_Gradiente)
                                    AND NOT EXISTS(hat_Hoehe_Linie))
                                    OR (EXISTS(hat_Hoehe_Gradiente)
                                    AND NOT EXISTS(Hoehe_fest)
                                    AND NOT EXISTS(hat_Hoehe_Linie))
                                    OR (EXISTS(hat_Hoehe_Linie)
                                    AND NOT EXISTS(Hoehe_fest)
                                    AND NOT EXISTS(hat_Hoehe_Gradiente));
   (* BEDINGUNG (Hoehe_fest IS NOT NULL AND hat_Hoehe_Gradiente IS NULL
                  AND hat_Hoehe_Linie IS NULL)
             OR (Hoehe_fest IS NULL AND hat_Hoehe_Gradiente IS NOT NULL
                  AND hat_Hoehe_Linie IS NULL)
             OR (Hoehe_fest IS NULL AND hat_Hoehe_Gradiente IS NULL
                  AND hat_Hoehe_Linie IS NOT NULL) *)
END_ENTITY;

ENTITY Hoehe_Gradiente
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Naeherungsstation_Gradiente   : Meter;
--- Relationen :
   hat_Gradiente                 : Gradiente;
INVERSE
   von_HZ_Punkt                  : SET [0:?] OF HZ_Punkt
                                             FOR hat_Hoehe_Gradiente;
END_ENTITY;

ENTITY Hoehe_Linie
SUBTYPE OF (Linienobjekt_Modell);
--- Attribute :
--- Relationen :
INVERSE
   von_HZ_Punkt                  : SET [0:?] OF HZ_Punkt
                                             FOR hat_Hoehe_Linie;
END_ENTITY;

ENTITY Querneigung
SUBTYPE OF (allgemeine_Eigenschaften,Ausgangsdaten_QP);
--- Attribute :
--- Relationen :
   hat_QN_Punkte                 : LIST [1:?] OF QN_Punkt;
INVERSE
   von_Spur_aus_Ausgangsdaten    : SET [0:?] OF Spur_aus_Ausgangsdaten
                                             FOR hat_Querneigung;
END_ENTITY;

ENTITY Querneigungswechsel
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Verziehungsform               : Verziehungsform;
--- Relationen :
INVERSE
   vor_QN_Punkt                  : QN_Punkt FOR folgt_auf_QN_Punkt;
END_ENTITY;

ENTITY Verziehungsform;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Verziehungsform VALUES (0,'reserviert')
INSERT INTO Verziehungsform VALUES (1,'normale Verziehung')
INSERT INTO Verziehungsform VALUES (2,'Verziehung mit Gratlinie (Schrägverwindung)')

   END_SQL
*)

ENTITY QN_Punkt
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Station                       : Meter;
   Querneigung                   : OPTIONAL Prozent;
   automatische_Berechnung       : OPTIONAL BOOLEAN;
--- Relationen :
   folgt_auf_QN_Punkt            : OPTIONAL Querneigungswechsel;
INVERSE
   gehoert_zu_Querneigung        : Querneigung FOR hat_QN_Punkte;
WHERE
   entweder_Quern_oder_autom     : (EXISTS(Querneigung)
                                     XOR EXISTS(automatische_Berechnung));
END_ENTITY;

ENTITY Hochbord
SUBTYPE OF (allgemeine_Eigenschaften,Ausgangsdaten_QP);
--- Attribute :
--- Relationen :
   hat_HB_Punkte                 : LIST [1:?] OF HB_Punkt;
   hat_HB_Neigung                : OPTIONAL SET [1:?] OF HB_Neigung;
INVERSE
   von_Spur_aus_Ausgangsdaten    : SET [0:?] OF Spur_aus_Ausgangsdaten FOR hat_Hochbord;
END_ENTITY;

ENTITY HB_Punkt
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Station                       : Meter;
   Differenzhoehe                : Meter;
--- Relationen :
INVERSE
   gehoert_zu_Hochbord           : Hochbord FOR hat_HB_Punkte;
END_ENTITY;

ENTITY HB_Neigung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Station                       : Meter;
   Neigungswinkel                : Groesse;
--- Relationen :
INVERSE
   zu_Hochbord                   : SET [0:?] OF Hochbord FOR hat_HB_Neigung;
END_ENTITY;

ENTITY Achsstationswerte
SUBTYPE OF (allgemeine_Eigenschaften,Ausgangsdaten_QP);
--- Attribute :
--- Relationen :
   hat_AW_Koor                   : LIST [1:?] OF AW_Koor;
END_ENTITY;

ENTITY AW_Koor
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Station                       : Meter;
   Character_Kennwert            : OPTIONAL STRING;
   Integer_Kennwert              : OPTIONAL INTEGER;
   Real_Kennwert                 : OPTIONAL REAL;
   Boolean_Kennwert              : OPTIONAL BOOLEAN;
--- Relationen :
INVERSE
   gehoert_zu_Achsstationswerten : SET [0:?] OF Achsstationswerte
                                             FOR hat_AW_Koor;
WHERE
   nur_ein_Kennwert              : (EXISTS(Character_Kennwert)
                                    AND NOT EXISTS(Integer_Kennwert)
                                    AND NOT EXISTS(Real_Kennwert)
                                    AND NOT EXISTS(Boolean_Kennwert))
                                   OR (EXISTS(Integer_Kennwert)
                                    AND NOT EXISTS(Character_Kennwert)
                                    AND NOT EXISTS(Real_Kennwert)
                                    AND NOT EXISTS(Boolean_Kennwert))
                                   OR (EXISTS(Real_Kennwert)
                                    AND NOT EXISTS(Character_Kennwert)
                                    AND NOT EXISTS(Integer_Kennwert)
                                    AND NOT EXISTS(Boolean_Kennwert))
                                   OR (EXISTS(Boolean_Kennwert)
                                    AND NOT EXISTS(Character_Kennwert)
                                    AND NOT EXISTS(Integer_Kennwert)
                                    AND NOT EXISTS(Real_Kennwert));
   (* BEDINGUNG (Character_Kennwert IS NOT NULL AND Integer_Kennwert IS NULL
                  AND Real_Kennwert IS NULL AND Boolean_Kennwert IS NULL)
             OR (Character_Kennwert IS NULL AND Integer_Kennwert IS NOT NULL
                  AND Real_Kennwert IS NULL AND Boolean_Kennwert IS NULL)
             OR (Character_Kennwert IS NULL AND Integer_Kennwert IS NULL
                  AND Real_Kennwert IS NOT NULL AND Boolean_Kennwert IS NULL)
             OR (Character_Kennwert IS NULL AND Integer_Kennwert IS NULL
                  AND Real_Kennwert IS NULL AND Boolean_Kennwert IS NOT NULL) *)
END_ENTITY;

ENTITY Entwurfsparameter
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Strassenkategorie             : OPTIONAL Strassenkategorie_RAS_L;
--- Relationen :
   gehoert_zu_Achse              : Achse;
   hat_Geschwindigkeitsband      : OPTIONAL SET [1:?] OF Geschwindigkeitsband;
INVERSE
   gehoert_zu_Trasse             : Trasse FOR hat_Entwurfsparameter;
END_ENTITY;

ENTITY Strassenkategorie_RAS_L;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Strassenkategorie_RAS_L VALUES (11,'A-I')
INSERT INTO Strassenkategorie_RAS_L VALUES (12,'A-II')
INSERT INTO Strassenkategorie_RAS_L VALUES (13,'A-III')
INSERT INTO Strassenkategorie_RAS_L VALUES (14,'A-IV')
INSERT INTO Strassenkategorie_RAS_L VALUES (15,'A-V')
INSERT INTO Strassenkategorie_RAS_L VALUES (16,'A-VI')
INSERT INTO Strassenkategorie_RAS_L VALUES (21,'B-I')
INSERT INTO Strassenkategorie_RAS_L VALUES (22,'B-II')
INSERT INTO Strassenkategorie_RAS_L VALUES (23,'B-III')
INSERT INTO Strassenkategorie_RAS_L VALUES (24,'B-IV')
INSERT INTO Strassenkategorie_RAS_L VALUES (31,'C-I')
INSERT INTO Strassenkategorie_RAS_L VALUES (32,'C-II')
INSERT INTO Strassenkategorie_RAS_L VALUES (33,'C-III')
INSERT INTO Strassenkategorie_RAS_L VALUES (34,'C-IV')
INSERT INTO Strassenkategorie_RAS_L VALUES (42,'D-II')
INSERT INTO Strassenkategorie_RAS_L VALUES (43,'D-III')
INSERT INTO Strassenkategorie_RAS_L VALUES (44,'D-IV')
INSERT INTO Strassenkategorie_RAS_L VALUES (45,'D-V')
INSERT INTO Strassenkategorie_RAS_L VALUES (53,'E-III')
INSERT INTO Strassenkategorie_RAS_L VALUES (54,'E-IV')
INSERT INTO Strassenkategorie_RAS_L VALUES (55,'E-V')
INSERT INTO Strassenkategorie_RAS_L VALUES (56,'E-VI')
INSERT INTO Strassenkategorie_RAS_L VALUES (99,'Sonstiges')

   END_SQL
*)

ENTITY Geschwindigkeitsband
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
   hat_V_Koor                    : LIST [1:?] OF V_Koor;
INVERSE
   von_Entwurfsparameter         : SET [0:?] OF Entwurfsparameter
                                             FOR hat_Geschwindigkeitsband;
END_ENTITY;

ENTITY V_Koor
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Station                       : Meter;
   Geschwindigkeit               : Stundenkilometer;
--- Relationen :
INVERSE
   gehoert_zu_Geschwindigkeitsbd : SET [0:?] OF Geschwindigkeitsband
                                             FOR hat_V_Koor;
END_ENTITY;

ENTITY Sichtweiten
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
   gehoert_zu_Achse              : Achse;
   hat_SW_Koor                   : LIST [1:?] OF SW_Koor;
   hat_Fahrspur                  : OPTIONAL Spur_aus_Ausgangsdaten;
   hat_Gegenspur                 : OPTIONAL Spur_aus_Ausgangsdaten;
INVERSE
   gehoert_zu_Trasse             : Trasse FOR hat_Sichtweiten;
END_ENTITY;

ENTITY SW_Koor
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Station                       : Meter;
   Sichtweite_erforderlich       : Meter;
   Sichtweite_vorhanden          : Meter;
--- Relationen :
INVERSE
   von_Sichtweite                : SET [0:?] OF Sichtweiten FOR hat_SW_Koor;
WHERE
   mindestens_eine_Sichtweite    : (EXISTS(Sichtweite_erforderlich)
                                     OR EXISTS(Sichtweite_vorhanden));
END_ENTITY;

ENTITY allgemeine_Eigenschaften
ABSTRACT SUPERTYPE OF (ONEOF(Beschilderung_Lichtsignalanl,Fahrbahnmarkierungen,
                        Schutz_und_Leiteinrichtungen,Bauwerkseinzelheiten,
                        Trasse,Achse,Achselement,Kreuzungs_o_Einmuendungsplang,
                        Laengsschnitt,kreuzende_Bauwerke_o_baul_Anl,
                        Laengsschnittlinie,LS_Koor,Hochbord,Hoehenzuege,
                        Profillinien,QP_Punkte,Volumen_aus_QP,DGM,
                        Oberflaeche,Deckenbuch,Spur_aus_Ausgangsdaten,
                        Breite,Querneigung,Achsstationswerte,Geschwindigkeitsband,
                        Sichtweiten,allgemeines_Punktobjekt,allgemeines_Linienobjekt,
                        allgemeines_Flaechenobjekt,ALKIS_Objekt_Punkt,
                        ALKIS_Objekt_Linie,ALKIS_Objekt_Flaeche))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Bezeichnung                   : OPTIONAL STRING;
   fachliche_Bedeutung           : STRING;
   Informationstext              : OPTIONAL SET [1:?] OF STRING;
--- Relationen :
END_ENTITY;

END_SCHEMA; -- Entwurf
SCHEMA Ingenieurbauwerke;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Formale Versionierung

29.06.2004 - 1.004 (1.009)
Überarbeitung gemäß Dokument N0060

31.05.2002 - 1.003 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

12.09.2001 - 1.002 (1.004)
Beziehung zu allgemeine_Eigenschaften
gemäß A0006 auf Vererbung umgestellt

11.12.2000 - 1.001 (1.002)
Symbolische Verweise integriert für Teilbauwerk

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Bauwerke (Teilbauwerk_abstrakt);

REFERENCE FROM Entwurf (allgemeine_Eigenschaften,kreuzende_Bauwerke_o_baul_Anl);

REFERENCE FROM allgemeine_Objekte (Kilometer,Winkel,Meter);

ENTITY Bauwerkseinzelheiten
SUBTYPE OF (allgemeine_Eigenschaften);
--- Attribute :
   Bauwerksnummer                : INTEGER;
   Bauwerksname                  : STRING;
   Bau_km                        : Kilometer;
   Brueckenklasse                : OPTIONAL STRING;
   Kreuzungswinkel               : OPTIONAL Winkel;
   lichte_Weite                  : OPTIONAL Meter;
   lichte_Hoehe                  : OPTIONAL Meter;
   Konstruktionshoehe            : OPTIONAL Meter;
   Nutzbreite                    : OPTIONAL Meter;
--- Relationen :
   von_Teilbauwerk               : OPTIONAL SET [1:?] OF
                                            Teilbauwerk_abstrakt; (* O *)
INVERSE
   geh_zu_kreuz_Bauw_o_baul_Anl  : SET [0:?] OF kreuzende_Bauwerke_o_baul_Anl
                                             FOR hat_Bauwerkseinzelheiten;
END_ENTITY;

END_SCHEMA; -- Ingenieurbauwerke

SCHEMA Projektressourcen;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Fehlerkorrektur

29.06.2004 - 1.002 (1.009)
Anpassung des Dokumentenverweises auf Dokument_abstrakt

31.05.2002 - 1.001 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM allgemeine_Objekte (OKSTRA_Objekt,Kilometer,Dokument_abstrakt);

ENTITY Projektressourcen
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Bauanfang_Bau_km              : Kilometer;
   endet_bei_Bau_km              : Kilometer;
   Ausbaulaenge                  : Kilometer;
--- Relationen :
   ist_Kostenberechnung_nach_AKS : OPTIONAL Kostenberechnung_nach_AKS;
   ist_Ausschreibung_und_Vergabe : OPTIONAL Ausschreibung_und_Vergabe;
   ist_Abrechnung                : OPTIONAL Abrechnung;
END_ENTITY;

ENTITY Kostenberechnung_nach_AKS
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Dokument                  : SET[1:?] OF Dokument_abstrakt;
INVERSE
   von_Projektressourcen         : SET [0:?] OF Projektressourcen
                                             FOR ist_Kostenberechnung_nach_AKS;
END_ENTITY;

ENTITY Ausschreibung_und_Vergabe
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Dokument                  : SET[1:?] OF Dokument_abstrakt;
INVERSE
   von_Projektressourcen         : SET [0:?] OF Projektressourcen
                                             FOR ist_Ausschreibung_und_Vergabe;
END_ENTITY;

ENTITY Abrechnung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Dokument                  : SET[1:?] OF Dokument_abstrakt;
INVERSE
   von_Projektressourcen         : SET [0:?] OF Projektressourcen
                                             FOR ist_Abrechnung;
END_ENTITY;

END_SCHEMA; -- Projektressourcen
SCHEMA Ausstattung;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Formale Versionierung

12.09.2001 - 1.001 (1.004)
Beziehung zu allgemeine_Eigenschaften
gemäß A0006 auf Vererbung umgestellt

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Punktobjekt_o_Bereichsobjekt);

REFERENCE FROM Entwurf (allgemeine_Eigenschaften);

ENTITY Beschilderung_Lichtsignalanl
SUBTYPE OF (Punktobjekt_o_Bereichsobjekt,allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Fahrbahnmarkierungen
SUBTYPE OF (Punktobjekt_o_Bereichsobjekt,allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Schutz_und_Leiteinrichtungen
SUBTYPE OF (Punktobjekt_o_Bereichsobjekt,allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
END_ENTITY;

END_SCHEMA; -- Ausstattung

SCHEMA Automatische_Dauerzaehlstelle;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Anpassung an ASB-ING, Stand 2004
Einführung der Ganglinie

29.06.2004 - 1.005 (1.009)
Kürzung von Bezeichnern, veränderte Schlüssel (SQL)

03.09.2003 - 1.004 (1.008)
Überarbeitung gemäß N0049

31.05.2002 - 1.003 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

12.09.2001 - 1.002 (1.004)
formale Versionierung durch Versionierung Verkehrsstaerke:
Bezug zum Unfall hergestellt nach Überarbeitung der Unfalldaten

11.12.2000 - 1.001 (1.002)
Symbolische Verweise integriert für Automatische_Dauerzaehlstelle, manuelle_Zaehlstelle
Verlegung von oertliche_Zuordnung in das Schema Strassennetz
Verlegung von verwaltungstechn_Zuordnung in das Schema Administration

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Streckenobjekt_hist,oertliche_Zuordnung,
                             Bezugsrichtung);

REFERENCE FROM Administration (verwaltungstechn_Zuordnung);

REFERENCE FROM Verkehr (Fahrstreifen_Nummer);

REFERENCE FROM Manuelle_Zaehlstelle (manuelle_Zaehlstelle_abstrakt);

REFERENCE FROM Verkehrsstaerke (Zaehlstelle);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,OKSTRA_Schluesseltabelle,Vorzeichen);

ENTITY automatische_Dauerzaehlstelle
SUBTYPE OF (Streckenobjekt_hist,autom_Dauerzaehlst_abstrakt,Zaehlstelle);
--- Attribute :
   Name                          : OPTIONAL STRING(50);
--- Relationen :
   hat_Zaehlstellennummer        : SET [1:?] OF Zaehlstellennummer;
   hat_oertliche_Zuordnung       : oertliche_Zuordnung_DZ;
   hat_verwaltungstechn_Zuordnung: verwaltungstechn_Zuordnung_DZ;
   hat_Erfassungstechnik         : Erfassungstechnik;
   gehoert_zu_UZ_VRZ             : OPTIONAL Unterzentrale_Verkehrsrechnerz; (* O *)
   ist_Komponente_in_Ableitung   : SET [0:?] OF Ableitung_autom_Dauerzaehlst;
   zu_manueller_Zaehlstelle      : OPTIONAL SET [1:?] OF manuelle_Zaehlstelle_abstrakt;
END_ENTITY;

ENTITY autom_Dauerzaehlst_abstrakt
ABSTRACT SUPERTYPE OF (ONEOF(automatische_Dauerzaehlstelle,autom_Dauerzaehlst_Symbol));
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY autom_Dauerzaehlst_Symbol
SUBTYPE OF (autom_Dauerzaehlst_abstrakt);
--- Attribute :
   Kennung                       : STRING(8) FIXED;
--- Relationen :
END_ENTITY;

ENTITY Zaehlstellennummer
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Nummer                        : STRING(8);
   Art_Zaehlstellennummer        : Art_Zaehlstellennummer;
--- Relationen :
INVERSE
   von_automat_Dauerzaehlstelle  : SET [0:?] OF automatische_Dauerzaehlstelle
                                       FOR hat_Zaehlstellennummer;
   von_abgel_Dauerzaehlstelle    : SET [0:?] OF abgeleitete_Dauerzaehlstelle
                                       FOR hat_Zaehlstellennummer;
END_ENTITY;

ENTITY Art_Zaehlstellennummer;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_Zaehlstellennummer VALUES (1,'BASt-Nummer')
INSERT INTO Art_Zaehlstellennummer VALUES (2,'Landesnummer')
INSERT INTO Art_Zaehlstellennummer VALUES (3,'sonstige Nummer')

   END_SQL
*)

ENTITY oertliche_Zuordnung_DZ
SUBTYPE OF (oertliche_Zuordnung);
--- Attribute :
--- Relationen :
   hat_Richtungen                : OPTIONAL SET [1:?] OF Richtungen;
INVERSE
   von_automat_Dauerzaehlstelle  : SET [0:?] OF automatische_Dauerzaehlstelle
                                       FOR hat_oertliche_Zuordnung;
END_ENTITY;

ENTITY Richtungen
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Nahziel                       : OPTIONAL STRING(50);
   Fernziel                      : OPTIONAL STRING(50);
   Richtung                      : OPTIONAL Himmelsrichtung;
   Bezugsrichtung                : OPTIONAL Bezugsrichtung;
--- Relationen :
INVERSE
   von_oertlicher_Zuordnung      : SET [0:?] OF oertliche_Zuordnung_DZ
                                             FOR hat_Richtungen;
   von_abgel_Dauerzaehlstelle    : SET [0:?] OF abgeleitete_Dauerzaehlstelle
                                             FOR hat_Richtungen;
END_ENTITY;

ENTITY Himmelsrichtung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Himmelsrichtung VALUES (1,'Norden')
INSERT INTO Himmelsrichtung VALUES (2,'Osten')
INSERT INTO Himmelsrichtung VALUES (3,'Süden')
INSERT INTO Himmelsrichtung VALUES (4,'Westen')

   END_SQL
*)

ENTITY verwaltungstechn_Zuordnung_DZ
SUBTYPE OF (verwaltungstechn_Zuordnung);
--- Attribute :
--- Relationen :
INVERSE
   von_automat_Dauerzaehlstelle  : SET [0:?] OF automatische_Dauerzaehlstelle
                                       FOR hat_verwaltungstechn_Zuordnung;
END_ENTITY;

ENTITY Erfassungstechnik
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Zaehlgeraet               : Zaehlgeraet;
INVERSE
   von_automat_Dauerzaehlstelle  : SET [0:?] OF automatische_Dauerzaehlstelle
                                       FOR hat_Erfassungstechnik;
END_ENTITY;

ENTITY Zaehlgeraet
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Art_der_Datenausgabe          : SET [1:?] OF STRING; -- Schluesseltabelle ?
   Hersteller                    : STRING;
   Analyse_Software              : OPTIONAL STRING;
   Detektorart                   : STRING; -- Schluesseltabelle ?
--- Relationen :
   hat_Detektoren                : SET [1:?] OF Detektoren_DZ;
   hat_Erfassungsmerkmale        : SET [1:?] OF Erfassungsmerkmale_DZ;
INVERSE
   von_Erfassungstechnik         : SET [0:?] OF Erfassungstechnik
                                       FOR hat_Zaehlgeraet;
END_ENTITY;

ENTITY Erfassungsmerkmale_DZ
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Zaehlintervallaenge_in_Minuten: OPTIONAL INTEGER; -- SET [1:?] OF
   Fahrzeugklassenunterscheidung : BOOLEAN;
   Art_der_registrierten_Daten   : SET [1:?] OF STRING;
--- Relationen :
INVERSE
   zu_Zaehlgeraet_DZ             : Zaehlgeraet FOR hat_Erfassungsmerkmale;
END_ENTITY;

ENTITY Detektoren_DZ
SUBTYPE OF (historisches_Objekt);
--- Attribute :
--- Relationen :
   ist_Fahrstreifen_zugeordnet   : Fahrstreifen_Nummer;
INVERSE
   von_Zaehlgeraet               : Zaehlgeraet FOR hat_Detektoren;
END_ENTITY;

-- vorläufig
ENTITY Unterzentrale_Verkehrsrechnerz
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Name                          : OPTIONAL STRING;
--- Relationen :
   von_automat_Dauerzaehlstelle  : OPTIONAL SET [1:?] OF autom_Dauerzaehlst_abstrakt; (* O *)
END_ENTITY;

ENTITY abgeleitete_Dauerzaehlstelle
SUBTYPE OF (Streckenobjekt_hist,Zaehlstelle);
--- Attribute :
   Name                          : OPTIONAL STRING;
--- Relationen :
   hat_Zaehlstellennummer        : Zaehlstellennummer;
   hat_Ableitung                 : SET [2:?] OF Ableitung_DZ;
   hat_Richtungen                : SET [1:?] OF Richtungen;
END_ENTITY;

ENTITY Ableitung_DZ
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Bezugsrichtung                : Bezugsrichtung;
--- Relationen :
   hat_Komponenten               : SET [1:?] OF Ableitung_autom_Dauerzaehlst;
INVERSE
   von_abgel_Dauerzaehlstelle    : SET [0:?] OF abgeleitete_Dauerzaehlstelle
                                       FOR hat_Ableitung;
END_ENTITY;

ENTITY Ableitung_autom_Dauerzaehlst
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Vorzeichen                    : Vorzeichen;
--- Relationen :
   automatische_Dauerzaehlstelle : SET [1:?] OF autom_Dauerzaehlst_abstrakt; (* D *)
INVERSE
   Ableitung_DZ                  : Ableitung_DZ FOR hat_Komponenten;
END_ENTITY;

END_SCHEMA; -- Automatische_Dauerzaehlstelle_


SCHEMA Verkehrsstaerke;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Anpassung an ASB-ING, Stand 2004
Einführung der Ganglinie

29.06.2004 - 1.005 (1.009)
Kürzung von Bezeichnern, veränderte Schlüssel (SQL)

03.09.2003 - 1.004 (1.008)
Überarbeitung gemäß N0049

31.05.2002 - 1.003 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

12.09.2001 - 1.002 (1.004)
formale Versionierung durch Versionierung Verkehrsstaerke:
Bezug zum Unfall hergestellt nach Überarbeitung der Unfalldaten

11.12.2000 - 1.001 (1.002)
Symbolische Verweise integriert für Automatische_Dauerzaehlstelle, manuelle_Zaehlstelle
Verlegung von oertliche_Zuordnung in das Schema Strassennetz
Verlegung von verwaltungstechn_Zuordnung in das Schema Administration

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Punktobjekt_stat,Bereichsobjekt_stat,Bezugsrichtung);

REFERENCE FROM Verkehr (Fahrstreifen_Nummer);

REFERENCE FROM Bauwerke (Bauwerk_Verkehrsstaerke);

REFERENCE FROM automatische_Dauerzaehlstelle (automatische_Dauerzaehlstelle,
                                              abgeleitete_Dauerzaehlstelle);

REFERENCE FROM manuelle_Zaehlstelle (manuelle_Zaehlstelle_SVZ);

REFERENCE FROM Unfall (Angaben_zu_Unfallumstaenden);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Jahr,Monat,ProzentOKSTRA_konzept_Objekt,
                                   OKSTRA_Schluesseltabelle,Jahr,Monat,Prozent,
                                   Anzahl,Datum,Uhrzeit);

ENTITY DTV_Basis
SUPERTYPE OF (ONEOF(DTV))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Fahrzeuge_pro_24h             : INTEGER;
   Bezugsjahr                    : Jahr;
   Fahrzeugkollektiv             : Fahrzeugkollektiv;
   Fahrzeugart                   : OPTIONAL Fahrzeugart;
   Fahrzeuggruppe                : OPTIONAL Fahrzeuggruppe;
--- Relationen :
INVERSE
   von_Bauwerk_Verkehrsstaerke   : SET [0:1] OF Bauwerk_Verkehrsstaerke
                                       FOR DTV_Kfz;
WHERE
   Fahrzeugart_o_Fahrzeuggruppe  : ( EXISTS(Fahrzeugart) XOR
                                     EXISTS(Fahrzeuggruppe) );   
END_ENTITY;

ENTITY DTV
SUBTYPE OF (DTV_Basis);
--- Attribute :
   Bezugsmonat                   : OPTIONAL Monat;
   Tagesgruppe                   : Tagesgruppe;
   Zaehltage                     : Anzahl;
   Gesamtstunden                 : Anzahl;
   Schaetzwert                   : BOOLEAN;
--- Relationen :
   fuer_Fahrstreifen             : OPTIONAL Fahrstreifen_Nummer;
   hat_Bezugsrichtung            : OPTIONAL Bezugsrichtung;
   aus_Zaehlstelle               : SET [1:?] OF Zaehlstelle_abstrakt; (* D *)
INVERSE
   zu_Unfallumstaenden           : SET [0:?] OF Angaben_zu_Unfallumstaenden
                                       FOR hat_DTV_im_Gesamtquerschnitt;
WHERE
   Fahrstreifen_o_Bezugsrichtung : ( EXISTS(fuer_Fahrstreifen) XOR
                                     EXISTS(hat_Bezugsrichtung) );
END_ENTITY;

ENTITY MSV
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Fahrzeuge_pro_h               : Anzahl;
   Bezugsjahr                    : Jahr;
   Tagesgruppe                   : Tagesgruppe;
--- Relationen :
   hat_Bezugsrichtung            : Bezugsrichtung;
   hat_Anteil_am_DTV             : OPTIONAL SET [1:?] OF Anteil_am_DTV;
   aus_Zaehlstelle               : SET [1:?] OF Zaehlstelle_abstrakt; (* D *)
END_ENTITY;

ENTITY Anteil_am_DTV
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Anteil                        : Prozent;
   Fahrzeuggruppe                : Fahrzeuggruppe;
--- Relationen :
INVERSE
   zu_MSV                        : SET [0:?] OF MSV FOR hat_Anteil_am_DTV;
   von_Bauwerk_Verkehrsstaerke   : SET [0:1] OF Bauwerk_Verkehrsstaerke
                                       FOR Anteil_DTV_SV;
END_ENTITY;

ENTITY Fahrzeugkollektiv
ABSTRACT SUPERTYPE OF (ONEOF(Fahrzeugart,Fahrzeuggruppe));
   (* KEY_NAME Kennung *)
END_ENTITY;

ENTITY Fahrzeugart
SUBTYPE OF (FahrzeugkollektivOKSTRA_Schluesseltabelle);
   (* KEY_NAME Kennung *)
   Kennung                       : STRING(10);
   Kennung                       : STRING(11);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Fahrzeugart VALUES ('nk Kfz','nicht klassifizierbare Fahrzeuge (Sonstige)')
INSERT INTO Fahrzeugart VALUES ('Krad','Motorräder')
INSERT INTO Fahrzeugart VALUES ('Pkw(grund)','Pkw')
INSERT INTO Fahrzeugart VALUES ('Lfw','Lieferwagen')
INSERT INTO Fahrzeugart VALUES ('Pkw','Krad + Pkw(grund) + Lfw')
INSERT INTO Fahrzeugart VALUES ('PkwÄ','Pkw + nk Kfz')
INSERT INTO Fahrzeugart VALUES ('PkwA','Pkw und Lfw mit Anhänger')
INSERT INTO Fahrzeugart VALUES ('Lkw','Lkw mit einem zulässigen Gesamtgewicht von mehr als 3,5 t')
INSERT INTO Fahrzeugart VALUES ('LkwA(grund)','Lkw mit Anhänger')
INSERT INTO Fahrzeugart VALUES ('Sattel-Kfz','Sattelkraftfahrzeuge')
INSERT INTO Fahrzeugart VALUES ('LkwA','LkwA(grund) + Sattel-Kfz')
INSERT INTO Fahrzeugart VALUES ('Bus','Busse mit mehr als 9 Sitzplätzen')
INSERT INTO Fahrzeugart VALUES ('LkwÄ','PkwA + Lkw + LkwA + Bus')
INSERT INTO Fahrzeugart VALUES ('Kfz','PkwÄ + LkwÄ')

   END_SQL
*)

ENTITY Fahrzeuggruppe
SUBTYPE OF (FahrzeugkollektivOKSTRA_Schluesseltabelle);
   (* KEY_NAME Kennung *)
   Kennung                       : STRING(10);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Fahrzeuggruppe VALUES ('PV','motorisierte Zweiräder, Pkw, Busse')
INSERT INTO Fahrzeuggruppe VALUES ('GV','Lieferwagen, Lkw ohne Anhänger, Lastzüge')
INSERT INTO Fahrzeuggruppe VALUES ('SV','Busse, Lkw ohne Anhänger, Lastzüge')
INSERT INTO Fahrzeuggruppe VALUES ('KFZ','PV + GV')

   END_SQL
*)

ENTITY Tagesgruppe
ABSTRACT SUPERTYPE OF (ONEOF(Fahrtzweckgruppe,Normalzeitbereich,weitere_Tagesgruppen));
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_konzept_Objekt);
--- Attribute :
   Fahrtzweckgruppe              : OPTIONAL Fahrtzweckgruppe;
   Normalzeitbereich             : OPTIONAL Normalzeitbereich;
   weitere_Tagesgruppen          : OPTIONAL weitere_Tagesgruppen;
--- Relationen :
WHERE
   ein_Wert                      : ( ( EXISTS(Fahrtzweckgruppe) AND
                                       NOT EXISTS(Normalzeitbereich) AND
                                       NOT EXISTS(weitere_Tagesgruppen) ) OR
                                     ( NOT EXISTS(Fahrtzweckgruppe) AND
                                       EXISTS(Normalzeitbereich) AND
                                       NOT EXISTS(weitere_Tagesgruppen) ) OR
                                     ( NOT EXISTS(Fahrtzweckgruppe) AND
                                       NOT EXISTS(Normalzeitbereich) AND
                                       EXISTS(weitere_Tagesgruppen) ) );
END_ENTITY;

ENTITY Fahrtzweckgruppe
SUBTYPE OF (TagesgruppeOKSTRA_Schluesseltabelle);
   (* KEY_NAME Kennung *)
   Kennung                       : STRING(9);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Fahrtzweckgruppe VALUES ('W','Werktage')
INSERT INTO Fahrtzweckgruppe VALUES ('U','Urlaubswerktage')
INSERT INTO Fahrtzweckgruppe VALUES ('S','Sonn- und Feiertage')

   END_SQL
*)

ENTITY Normalzeitbereich
SUBTYPE OF (TagesgruppeOKSTRA_Schluesseltabelle);
   (* KEY_NAME Kennung *)
   Kennung                       : STRING(9);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Normalzeitbereich VALUES ('Mo','Montag')
INSERT INTO Normalzeitbereich VALUES ('Di-Do','Dienstag-Donnerstag')
INSERT INTO Normalzeitbereich VALUES ('Fr','Freitag')
INSERT INTO Normalzeitbereich VALUES ('Sa','Samstag')
INSERT INTO Normalzeitbereich VALUES ('So','Sonntag')

   END_SQL
*)

ENTITY weitere_Tagesgruppen
SUBTYPE OF (TagesgruppeOKSTRA_Schluesseltabelle);
   (* KEY_NAME Kennung *)
   Kennung                       : STRING(9);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO weitere_Tagesgruppen VALUES ('alle Tage','alle Tage')

   END_SQL
*)

ENTITY Zaehlstelle
ABSTRACT SUPERTYPE OF (ONEOF(automatische_Dauerzaehlstelle,
                              abgeleitete_Dauerzaehlstelle,
                              manuelle_Zaehlstelle_SVZ))
SUBTYPE OF (OKSTRA_Objekt,Zaehlstelle_abstrakt);
--- Attribute :
--- Relationen :
   zu_DTV                        : SET [0:?] OF DTV;
   zu_MSV                        : SET [0:?] OF MSV;
   zu_Kennw_zur_Laermberechnung  : SET [0:?] OF Kennwert_zur_Laermberechnung;
   zu_Jahresganglinientyp        : SET [0:?] OF Jahresganglinientyp;
   zu_Wochenganglinientyp        : SET [0:?] OF Wochenganglinientyp;
   zu_Tagesganglinientyp         : SET [0:?] OF Tagesganglinientyp;
END_ENTITY;

ENTITY Zaehlstelle_abstrakt
ABSTRACT SUPERTYPE OF (ONEOF(Zaehlstelle,Zaehlstelle_Symbol));
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Zaehlstelle_Symbol
SUBTYPE OF (Zaehlstelle_abstrakt);
--- Attribute :
   Kennung                       : STRING(8);
--- Relationen :
END_ENTITY;

ENTITY Kennwert_zur_Laermberechnung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Stundengruppe                 : Stundengruppe;
   Kraftfahrzeuge_pro_h          : Anzahl;
   Bezugsjahr                    : Jahr;
--- Relationen :
   aus_Zaehlstelle               : SET [1:?] OF Zaehlstelle_abstrakt; (* D *)
   hat_Anteil_Kennwert           : OPTIONAL SET [1:?] OF Anteil_Kennwert;
END_ENTITY;

ENTITY Stundengruppe;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(5) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(5);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Stundengruppe VALUES ('Tag','Tag (6h-22h)')
INSERT INTO Stundengruppe VALUES ('Nacht','Nacht (22h-6h)')

   END_SQL
*)

ENTITY Anteil_Kennwert
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Anteil                        : Prozent;
   Fahrzeuggruppe                : Fahrzeuggruppe;
--- Relationen :
INVERSE
   zu_Kennwert_z_Laermberechnung : SET [0:?] OF Kennwert_zur_Laermberechnung
                                             FOR hat_Anteil_Kennwert;
END_ENTITY;

ENTITY Jahresganglinientyp
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Bezugsjahr                    : Jahr;
   Typ                           : Typ_Jahresganglinie;
--- Relationen :
   aus_Zaehlstelle               : SET [1:?] OF Zaehlstelle_abstrakt; (* D *)
END_ENTITY;

ENTITY Typ_Jahresganglinie;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Typ_Jahresganglinie VALUES ('A','Weitgehend ausgeglichene Ganglinie mit Rückgängen für Ferien- und Feiertagswochen.')
INSERT INTO Typ_Jahresganglinie VALUES ('B','Weitgehend ausgeglichene Ganglinie, im Sommerhalbjahr etwas stärkerer Verkehr als im Winterhalbjahr.')
INSERT INTO Typ_Jahresganglinie VALUES ('C','Im Sommerhalbjahr sichtbar stärkerer Verkehr als im Winterhalbjahr.')
INSERT INTO Typ_Jahresganglinie VALUES ('D','Spitzen für Ferien- und Feiertagswochen.')
INSERT INTO Typ_Jahresganglinie VALUES ('E','Wie Typ D, jedoch gleichmäßiger Verkehrsanstieg im 1. Halbjahr.')
INSERT INTO Typ_Jahresganglinie VALUES ('F','Spitzen für Feiertagswochen und deutliche Spitzen für Ferienwochen.')

   END_SQL
*)

ENTITY Wochenganglinientyp
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Bezugsjahr                    : Jahr;
   Typ                           : Typ_Wochenganglinie;
   Bezugsrichtung                : Bezugsrichtung;
--- Relationen :
   aus_Zaehlstelle               : SET [1:?] OF Zaehlstelle_abstrakt; (* D *)
END_ENTITY;

ENTITY Typ_Wochenganglinie;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Typ_Wochenganglinie VALUES ('A','Wochenende stark abfallend, ausgeprägtes Minimum Sonntag.')
INSERT INTO Typ_Wochenganglinie VALUES ('B','Wochenende stark abfallend, Minimum Sonntag.')
INSERT INTO Typ_Wochenganglinie VALUES ('C','Maximum Freitag, Wochenende abfallend.')
INSERT INTO Typ_Wochenganglinie VALUES ('D','(Lokales) Maximum Montag, Freitag, Sonntag, Minimum Samstag.')
INSERT INTO Typ_Wochenganglinie VALUES ('E','Maximum Freitag, Samstag überdurchschnittlich.')
INSERT INTO Typ_Wochenganglinie VALUES ('F','Ausgeprägtes Maximum Sonntag.')

   END_SQL
*)

ENTITY Tagesganglinientyp
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Bezugsjahr                    : Jahr;
   Typ                           : Tagesgruppe_Typ;
   Bezugsrichtung                : Bezugsrichtung;
   Stundenindex                  : OPTIONAL SET [1:?] OF INTEGER;
--- Relationen :
   aus_Zaehlstelle               : SET [1:?] OF Zaehlstelle_abstrakt; (* D *)
END_ENTITY;

ENTITY Tagesgruppe_Typ;
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Tagesgruppe                   : STRING(7);
   Buchstabe                     : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Tagesgruppe,BuchstabeKennung;
END_ENTITY;

(* SQL :

INSERT INTO Tagesgruppe_Typ VALUES (1,'Montag','A','Stark ausgeprägte Morgenspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (2,'Montag','B','Morgenspitze, geringe Nachmittagsspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (3,'Montag','C','Relativ ausgeglichene Verkehrsverteilung tagsüber.')
INSERT INTO Tagesgruppe_Typ VALUES (4,'Montag','D','Doppelspitze (Morgen / Nachmittag).')
INSERT INTO Tagesgruppe_Typ VALUES (5,'Montag','E','Nachmittagsspitze, geringe Morgenspitze')
INSERT INTO Tagesgruppe_Typ VALUES (6,'Montag','F','Stark ausgeprägte Nachmittagsspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (7,'Montag','G','Überdurchschnittliche Anteilswerte frühmorgens, nach Morgenspitze stetig abfallend.')
INSERT INTO Tagesgruppe_Typ VALUES (8,'Di – Do','A','Stark ausgeprägte Morgenspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (9,'Di – Do','B','Morgenspitze, geringe Nachmittagsspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (10,'Di – Do','C','Relativ ausgeglichene Verkehrsverteilung tagsüber.')
INSERT INTO Tagesgruppe_Typ VALUES (11,'Di – Do','D','Doppelspitze (Morgen / Nachmittag).')
INSERT INTO Tagesgruppe_Typ VALUES (12,'Di – Do','E','Nachmittagsspitze, geringe Morgenspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (13,'Di – Do','F','Stark ausgeprägte Nachmittagsspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (14,'Freitag','A','Stark ausgeprägte Morgenspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (15,'Freitag','B','Morgenspitze, gegenüber Mittag höhere Verkehrsstärken nachmittags.')
INSERT INTO Tagesgruppe_Typ VALUES (16,'Freitag','C','Relativ ausgeglichene Verkehrsverteilung tagsüber.')
INSERT INTO Tagesgruppe_Typ VALUES (17,'Freitag','D','Morgenspitze, breites Maximum am Nachmittag.')
INSERT INTO Tagesgruppe_Typ VALUES (18,'Freitag','E','Breites Maximum am Nachmittag.')
INSERT INTO Tagesgruppe_Typ VALUES (19,'Freitag','F','Stark ausgeprägtes, breites Maximum am Nachmittag.')
INSERT INTO Tagesgruppe_Typ VALUES (20,'Samstag','A','Relativ ausgeglichene Verkehrsverteilung tagsüber.')
INSERT INTO Tagesgruppe_Typ VALUES (21,'Samstag','B','Nach Vormittagsspitze stetig abfallend.')
INSERT INTO Tagesgruppe_Typ VALUES (22,'Samstag','C','Doppelspitze (Vormittag / Nachmittag).')
INSERT INTO Tagesgruppe_Typ VALUES (23,'Samstag','D','Breite Nachmittagsspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (24,'Samstag','E','Abendspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (25,'Samstag','F','Nach ausgeprägter Vormittagsspitze stetig abfallend.')
INSERT INTO Tagesgruppe_Typ VALUES (26,'Samstag','G','Stetig ansteigend zu ausgeprägter Nachmittagsspitze, danach stetig fallend.')
INSERT INTO Tagesgruppe_Typ VALUES (27,'Samstag','H','Stark ausgeprägte Abendspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (28,'Sonntag','A','Relativ ausgeglichene Verkehrsverteilung tagsüber.')
INSERT INTO Tagesgruppe_Typ VALUES (29,'Sonntag','B','Mittagsspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (30,'Sonntag','C','Nachmittagsspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (31,'Sonntag','D','Abendspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (32,'Sonntag','E','Ausgeprägte Mittagsspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (33,'Sonntag','F','Ausgeprägte Nachmittagsspitze.')
INSERT INTO Tagesgruppe_Typ VALUES (34,'Sonntag','G','Ausgeprägte Abendspitze.')

   END_SQL
*)

ENTITY Ganglinie
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Bezeichnung                   : STRING;
   fachliche_Bedeutung           : STRING;
   Informationstext              : OPTIONAL STRING;
   Datum                         : OPTIONAL Datum;
   Inhalt                        : OPTIONAL STRING;
   Intervall_Einheit             : OPTIONAL Intervall_Einheit;
   Intervall_Dauer               : OPTIONAL REAL;
   Intervall_Anzahl              : OPTIONAL INTEGER;
   Wert_min                      : OPTIONAL REAL;
   Wert_max                      : OPTIONAL REAL;
   Einheit                       : OPTIONAL STRING;
   Bezugsrichtung                : OPTIONAL Bezugsrichtung;
--- Relationen :
   hat_Ganglinienwert            : SET[1:?] OF Ganglinienwert;
   ist_Punktobjekt               : OPTIONAL Ganglinie_Punktobjekt;
   ist_Bereichsobjekt            : OPTIONAL Ganglinie_Bereichsobjekt;
   hat_Fahrstreifen              : OPTIONAL SET[1:?] OF Fahrstreifen_Nummer; (* D *)
   aus_Zaehlstelle               : OPTIONAL SET[1:?] OF Zaehlstelle_abstrakt; (* D *)
WHERE
   Punktobjekt_o_Bereichsobjekt  : (EXISTS(ist_Punktobjekt) XOR
                                    EXISTS(ist_Bereichsobjekt));
END_ENTITY;

ENTITY Intervall_Einheit;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Intervall_Einheit VALUES (1,'Stunden')
INSERT INTO Intervall_Einheit VALUES (2,'Minuten')
INSERT INTO Intervall_Einheit VALUES (3,'Sekunden')

   END_SQL
*)

ENTITY Ganglinie_Punktobjekt
SUBTYPE OF (Punktobjekt_stat);
--- Attribute :
--- Relationen :
INVERSE
   zu_Ganglinie                  : SET[1:?] OF Ganglinie FOR ist_Punktobjekt;
END_ENTITY;

ENTITY Ganglinie_Bereichsobjekt
SUBTYPE OF (Bereichsobjekt_stat);
--- Attribute :
--- Relationen :
INVERSE
   zu_Ganglinie                  : SET[1:?] OF Ganglinie FOR ist_Bereichsobjekt;
END_ENTITY;

ENTITY Ganglinienwert
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Startzeit                     : Uhrzeit;
   Startdatum                    : OPTIONAL Datum;
   Endzeit                       : OPTIONAL Uhrzeit;
   Enddatum                      : OPTIONAL Datum;
   Wert                          : REAL;
--- Relationen :
INVERSE
   gehoert_zu_Ganglinie          : SET[1:?] OF Ganglinie FOR hat_Ganglinienwert;
END_ENTITY;

END_SCHEMA; -- Verkehrsstaerke


SCHEMA Erfassung_Geschwindigkeiten;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Anpassung an ASB-ING, Stand 2004
Einführung der Ganglinie

29.06.2004 - 1.005 (1.009)
Kürzung von Bezeichnern, veränderte Schlüssel (SQL)

03.09.2003 - 1.004 (1.008)
Überarbeitung gemäß N0049

31.05.2002 - 1.003 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

12.09.2001 - 1.002 (1.004)
formale Versionierung durch Versionierung Verkehrsstaerke:
Bezug zum Unfall hergestellt nach Überarbeitung der Unfalldaten

11.12.2000 - 1.001 (1.002)
Symbolische Verweise integriert für Automatische_Dauerzaehlstelle, manuelle_Zaehlstelle
Verlegung von oertliche_Zuordnung in das Schema Strassennetz
Verlegung von verwaltungstechn_Zuordnung in das Schema Administration

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Stundenkilometer,
                                   Anzahl,Anzahl_zweistellig);

ENTITY Erfassung_Geschwindigkeiten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   zugehoerige_Fahrzeugklasse    : INTEGER;
--- Relationen :
   hat_V_Verteilungen            : OPTIONAL SET [1:?] OF V_Verteilungen;
   hat_aggregierte_Werte         : SET [1:?] OF aggregierte_Werte;
END_ENTITY;

ENTITY V_Verteilungen
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Anzahl_V_Klassen          : SET [1:?] OF Anzahl_V_Klassen;
   hat_V_Klassen                 : SET [1:?] OF V_Klassen;
INVERSE
   von_Erfassung_Geschwindigktn  : SET [0:?] OF Erfassung_Geschwindigkeiten
                                             FOR hat_V_Verteilungen;
END_ENTITY;

ENTITY Anzahl_V_Klassen
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Fahrzeugklasse                : INTEGER;
   Anzahl_V_Klassen              : Anzahl;
--- Relationen :
INVERSE
   von_V_Verteilungen            : SET [0:?] OF V_Verteilungen
                                             FOR hat_Anzahl_V_Klassen;
WHERE
   Fahrzeugklasse_positiv        : Fahrzeugklasse >= 1;
   (* BEDINGUNG Fahrzeugklasse >= 1 *)
   Anzahl_sinnvoll               : Anzahl_V_Klassen <= 16;
   (* BEDINGUNG Anzahl_V_Klassen <= 16 *)
END_ENTITY;

ENTITY V_Klassen
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Klassennummer                 : Anzahl_zweistellig;
   Klassengrenze                 : INTEGER;
   Klassenwert                   : INTEGER;
--- Relationen :
   hat_abgel_Werte_und_Verteilgen: OPTIONAL SET [1:?] OF
                                                abgel_Werte_u_Verteilgen_VK;
INVERSE
   von_V_Klassen                 : SET [0:?] OF V_Verteilungen
                                                FOR hat_V_Klassen;
END_ENTITY;

ENTITY abgel_Werte_u_Verteilgen_VK
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
INVERSE
   von_V_Klassen                 : SET [0:?] OF V_Klassen
                                       FOR hat_abgel_Werte_und_Verteilgen;
END_ENTITY;

ENTITY aggregierte_Werte
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Standardabweichung            : OPTIONAL Stundenkilometer;
   v85                           : OPTIONAL Stundenkilometer;
--- Relationen :
   hat_mittlere_Geschwindigkeit  : mittlere_Geschwindigkeit;
INVERSE
   von_Erfassung_Geschwindigkeit : SET [0:?] OF Erfassung_Geschwindigkeiten
                                             FOR hat_aggregierte_Werte;
WHERE
   Standardabweichung_sinnvoll   : Standardabweichung <= 255;
   (* BEDINGUNG Standardabweichung <= 255 *)
   v85_sinnvoll                  : v85 <= 254;
   (* BEDINGUNG v85 <= 254 *)
 END_ENTITY;

ENTITY mittlere_Geschwindigkeit
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Geschwindigkeit               : Stundenkilometer;
--- Relationen :
   hat_abgeleitete_Werte         : OPTIONAL SET [1:?] OF abgeleitete_Werte_VM;
INVERSE
   von_aggregierten_Werten       : SET [0:?] OF aggregierte_Werte
                                             FOR hat_mittlere_Geschwindigkeit;
WHERE
   Geschwindigkeit_sinnvoll      : Geschwindigkeit <= 255;
   (* BEDINGUNG Geschwindigkeit <= 255 *)
END_ENTITY;

ENTITY abgeleitete_Werte_VM
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
INVERSE
   von_mittlerer_Geschwindigkeit : SET [0:?] OF mittlere_Geschwindigkeit
                                             FOR hat_abgeleitete_Werte;
END_ENTITY;

END_SCHEMA; -- Erfassung_Geschwindigkeiten


SCHEMA Achslastdaten;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Anpassung an ASB-ING, Stand 2004
Einführung der Ganglinie

29.06.2004 - 1.005 (1.009)
Kürzung von Bezeichnern, veränderte Schlüssel (SQL)

03.09.2003 - 1.004 (1.008)
Überarbeitung gemäß N0049

31.05.2002 - 1.003 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

12.09.2001 - 1.002 (1.004)
formale Versionierung durch Versionierung Verkehrsstaerke:
Bezug zum Unfall hergestellt nach Überarbeitung der Unfalldaten

11.12.2000 - 1.001 (1.002)
Symbolische Verweise integriert für Automatische_Dauerzaehlstelle, manuelle_Zaehlstelle
Verlegung von oertliche_Zuordnung in das Schema Strassennetz
Verlegung von verwaltungstechn_Zuordnung in das Schema Administration

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Anzahl,Groesse);OKSTRA_Schluesseltabelle,
                                   Anzahl,Groesse);

ENTITY Achslastdatenerfassung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_GG_Verteilung_e_FZ_Klasse : SET [1:?] OF GG_Verteilung_einer_FZ_Klasse;
   hat_Achslastvertlg_e_Achstyps : SET [1:?] OF Achslastverteilung_e_Achstyps;
   hat_abgel_Werte_und_Vertlgen  : OPTIONAL SET [1:?]
                                            OF abgel_Werte_und_Verteilungen;
END_ENTITY;

ENTITY abgel_Werte_und_Verteilungen
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
INVERSE
   von_Achslastdatenerfassung    : SET [0:?] OF Achslastdatenerfassung
                                       FOR hat_abgel_Werte_und_Vertlgen;
END_ENTITY;

ENTITY GG_Verteilung_einer_FZ_Klasse
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Fahrzeugklasse                : INTEGER;
   Anzahl_der_GG_Klassen_FZ_Kl_3 : INTEGER;
   Anzahl_der_GG_Klassen_FZ_Kl_4 : INTEGER;
   Anzahl_der_GG_Klassen_FZ_Kl_5 : INTEGER;
   Anzahl_Ueberladungen          : Anzahl;
--- Relationen :
   hat_GG_Klasse                 : SET [1:?] OF GG_Klasse;
INVERSE
   von_Achslastdatenerfassung    : SET [0:?] OF Achslastdatenerfassung
                                       FOR hat_GG_Verteilung_e_FZ_Klasse;
WHERE
   Fahrzeugklasse_zulaessig      : { 3 <= Fahrzeugklasse <= 5 };
   (* BEDINGUNG ( Fahrzeugklasse >= 3 ) AND ( Fahrzeugklasse <= 5 ) *)
   Anzahl_Ueberladungen_zulaessig: Anzahl_Ueberladungen <= 255;
END_ENTITY;

TYPE Klassenwert = Anzahl;
WHERE
   Klassenwert_zulaessig         : SELF <= 65535;
   (* BEDINGUNG SELF <= 65535 *)
END_TYPE;

ENTITY GG_Klasse
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Klassennummer                 : INTEGER;
   Klassengrenze                 : Groesse;
   Klassenwert                   : Klassenwert;
--- Relationen :
INVERSE
   von_GG_Verteilung_e_FZ_Klasse : SET [0:?] OF GG_Verteilung_einer_FZ_Klasse
                                       FOR hat_GG_Klasse;
WHERE
   Klassennummer_zulaessig       : { 1 <= Klassennummer <= 8 };
   (* BEDINGUNG ( Klassennummer >= 1 ) AND ( Klassennummer <= 8 ) *)
END_ENTITY;

ENTITY Achstyp;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Achstyp VALUES (1,'Einfachachse')
INSERT INTO Achstyp VALUES (2,'Doppelachse')
INSERT INTO Achstyp VALUES (3,'Dreifachachse')

   END_SQL
*)

TYPE Anzahl_Klassen = INTEGER;
WHERE
   Anzahl_zulaessig              : { 1 <= SELF <= 99 };
   (* BEDINGUNG ( SELF >= 1 ) AND ( SELF <= 99 ) *)
END_TYPE;

ENTITY Achslastverteilung_e_Achstyps
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Achstyp                       : Achstyp;
   Anz_d_Klassen_f_Einzelachsen  : Anzahl_Klassen;
   Anz_d_Klassen_f_Doppelachsen  : Anzahl_Klassen;
   Anz_d_Klassen_f_Dreifachachsen: Anzahl_Klassen;
--- Relationen :
   hat_Klasse_AL                 : Klasse_AL;
INVERSE
   von_Achslastdatenerfassung    : SET [0:?] OF Achslastdatenerfassung
                                       FOR hat_Achslastvertlg_e_Achstyps;
END_ENTITY;

ENTITY Klasse_AL
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Klassennummer                 : INTEGER;
   Klassengrenze                 : Groesse;
   Klassenwert                   : Klassenwert;
--- Relationen :
INVERSE
   von_Achslastvertlg_e_Achstyps : SET [0:?] OF Achslastverteilung_e_Achstyps
                                       FOR hat_Klasse_AL;
WHERE
   Klassennummer_zulaessig       : { 0 <= Klassennummer <= 99 };
   (* BEDINGUNG ( Klassennummer >= 0 ) AND ( Klassennummer <= 99 ) *)
END_ENTITY;

END_SCHEMA; -- Achslastdaten


SCHEMA Einzelfahrzeugdaten;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Anpassung an ASB-ING, Stand 2004
Einführung der Ganglinie

29.06.2004 - 1.005 (1.009)
Kürzung von Bezeichnern, veränderte Schlüssel (SQL)

03.09.2003 - 1.004 (1.008)
Überarbeitung gemäß N0049

31.05.2002 - 1.003 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

12.09.2001 - 1.002 (1.004)
formale Versionierung durch Versionierung Verkehrsstaerke:
Bezug zum Unfall hergestellt nach Überarbeitung der Unfalldaten

11.12.2000 - 1.001 (1.002)
Symbolische Verweise integriert für Automatische_Dauerzaehlstelle, manuelle_Zaehlstelle
Verlegung von oertliche_Zuordnung in das Schema Strassennetz
Verlegung von verwaltungstechn_Zuordnung in das Schema Administration

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Achslastdaten (Achstyp);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Datum,Millisekunden,Stundenkilometer,
                                   Zentimeter,Kilogramm,Anzahl,Uhrzeit);

ENTITY Einzelfahrzeugdatenerfassung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Nettozeitluecke_z_vorherig_FZ : OPTIONAL Millisekunden;
   Geschwindigkeit               : Stundenkilometer;
   Fahrzeuglaenge                : OPTIONAL Zentimeter;
   Abstand_zum_vorausfahrenden_FZ: OPTIONAL Zentimeter;
--- Relationen :
   hat_zugehoerige_Fahrzeugklasse: zugehoerige_Fahrzeugklasse;
   hat_zugehoerigen_Zeitpunkt    : zugehoeriger_Zeitpunkt;
   hat_fahrzeugbez_Achslastdaten : OPTIONAL fahrzeugbezogene_Achslastdaten;
   hat_achsbezogene_Daten        : OPTIONAL SET [1:?]
                                            OF achsbezogene_Daten;
WHERE
   Geschwindigkeit_zulaessig     : Geschwindigkeit <= 255;
   (* BEDINGUNG Geschwindigkeit <= 255 *)
END_ENTITY;

ENTITY zugehoerige_Fahrzeugklasse
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Klasse                        : STRING(20);
   Typ                           : STRING(20);
--- Relationen :
INVERSE
   von_Einzelfahrzeugdatenerfassg: SET [0:?] OF Einzelfahrzeugdatenerfassung
                                       FOR hat_zugehoerige_Fahrzeugklasse;
END_ENTITY;

ENTITY zugehoeriger_Zeitpunkt
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Datum                         : Datum;
   Uhrzeit                       : Uhrzeit;
--- Relationen :
INVERSE
   von_Einzelfahrzeugdatenerfassg: SET [0:?] OF Einzelfahrzeugdatenerfassung
                                       FOR hat_zugehoerigen_Zeitpunkt;
END_ENTITY;

ENTITY fahrzeugbezogene_Achslastdaten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Anzahl_der_Achsen             : Anzahl;
   Gesamtgewicht                 : Kilogramm;
--- Relationen :
   hat_Ueberladung               : Ueberladung;
INVERSE
   von_Einzelfahrzeugdatenerfassg: SET [0:?] OF Einzelfahrzeugdatenerfassung
                                       FOR hat_fahrzeugbez_Achslastdaten;
END_ENTITY;

ENTITY Ueberladung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Ueberladung_vorhanden         : OPTIONAL BOOLEAN;
   Ueberladung                   : OPTIONAL Kilogramm;
--- Relationen :
INVERSE
   von_fahrzeugbez_Achslastdaten : SET [0:?] OF fahrzeugbezogene_Achslastdaten
                                             FOR hat_Ueberladung;
   von_achsbezogenen_Daten       : SET [0:?] OF achsbezogene_Daten
                                             FOR hat_Ueberladung;
END_ENTITY;

ENTITY achsbezogene_Daten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Achsabstand_zur_Vorderachse   : Zentimeter;
   Achslast                      : Kilogramm;
   Achstyp                       : Achstyp;
--- Relationen :
   hat_Ueberladung               : Ueberladung;
INVERSE
   von_Einzelfahrzeugdatenerfassg: SET [0:?] OF Einzelfahrzeugdatenerfassung
                                       FOR hat_achsbezogene_Daten;
END_ENTITY;

END_SCHEMA; -- Einzelfahrzeugdaten


SCHEMA Manuelle_Zaehlstelle;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Anpassung an ASB-ING, Stand 2004
Einführung der Ganglinie

29.06.2004 - 1.005 (1.009)
Kürzung von Bezeichnern, veränderte Schlüssel (SQL)

03.09.2003 - 1.004 (1.008)
Überarbeitung gemäß N0049

31.05.2002 - 1.003 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

12.09.2001 - 1.002 (1.004)
formale Versionierung durch Versionierung Verkehrsstaerke:
Bezug zum Unfall hergestellt nach Überarbeitung der Unfalldaten

11.12.2000 - 1.001 (1.002)
Symbolische Verweise integriert für Automatische_Dauerzaehlstelle, manuelle_Zaehlstelle
Verlegung von oertliche_Zuordnung in das Schema Strassennetz
Verlegung von verwaltungstechn_Zuordnung in das Schema Administration

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Streckenobjekt_hist,oertliche_Zuordnung,Bezugsrichtung);

REFERENCE FROM Administration (verwaltungstechn_Zuordnung);

REFERENCE FROM Verkehr (Anzahl_Fahrstreifen);

REFERENCE FROM Automatische_Dauerzaehlstelle (autom_Dauerzaehlst_abstrakt);

REFERENCE FROM Verkehrsstaerke (Zaehlstelle);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt);

ENTITY manuelle_Zaehlstelle_SVZ
SUBTYPE OF (historisches_Objekt,manuelle_Zaehlstelle_abstrakt,Zaehlstelle);
--- Attribute :
   Zaehlstellennummer            : STRING;
--- Relationen :
   hat_oertliche_Zuordnung       : oertliche_Zuordnung_MZ;
   hat_verwaltungstechn_Zuordnung: verwaltungstechn_Zuordnung_MZ;
   hat_raeuml_Gueltigkeitsbereich: raeuml_Gueltigkeitsbereich_MZ;
   hat_automat_Dauerzaehlstelle  : OPTIONAL SET [1:?] OF autom_Dauerzaehlst_abstrakt;
END_ENTITY;


ENTITY manuelle_Zaehlstelle_abstrakt
ABSTRACT SUPERTYPE OF (ONEOF(manuelle_Zaehlstelle_SVZ,manuelle_Zaehlstelle_Symbol));
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY manuelle_Zaehlstelle_Symbol
SUBTYPE OF (manuelle_Zaehlstelle_abstrakt);
--- Attribute :
   Kennung                      : STRING(8) FIXED;
--- Relationen :
END_ENTITY;

ENTITY verwaltungstechn_Zuordnung_MZ
SUBTYPE OF (verwaltungstechn_Zuordnung);
--- Attribute :
--- Relationen :
INVERSE
   von_manueller_Zaehlstelle     : SET [0:?] OF manuelle_Zaehlstelle_SVZ
                                       FOR hat_verwaltungstechn_Zuordnung;
END_ENTITY;

ENTITY oertliche_Zuordnung_MZ
SUBTYPE OF (oertliche_Zuordnung);
--- Attribute :
   Richtung                      : OPTIONAL Bezugsrichtung;
--- Relationen :
INVERSE
   von_manueller_Zaehlstelle     : SET [0:?] OF manuelle_Zaehlstelle_SVZ
                                       FOR hat_oertliche_Zuordnung;
END_ENTITY;

ENTITY raeuml_Gueltigkeitsbereich_MZ
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
   verbale_Beschreibung          : STRING;
--- Relationen :
   ueberwiegende_Anzahl_Fahrstr  : Anzahl_Fahrstreifen;
INVERSE
   von_manueller_Zaehlstelle     : SET [0:?] OF manuelle_Zaehlstelle_SVZ
                                       FOR hat_raeuml_Gueltigkeitsbereich;
END_ENTITY;

END_SCHEMA; -- Manuelle_Zaehlstelle
SCHEMA Umfeldmessstelle;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Formale Versionierung

03.09.2003 - 1.003 (1.008)
Korrektur der historischen Gültigkeitsdaten (SQL)

31.05.2002 - 1.002 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

11.12.2000 - 1.001 (1.002)
oertliche_Zuordnung aus Schema Strassennetz referenziert,
verwaltungstechn_Zuordnung aus Schema Administration referenziert

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (oertliche_Zuordnung);

REFERENCE FROM Administration (verwaltungstechn_Zuordnung);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,OKSTRA_Schluesseltabelle,Datum,Hektopascal,Prozent,Grad_Celsius,
                                   Grad,Meter_pro_Sekunde,Millimeter_pro_StundeHektopascal,Prozent,Grad_Celsius,Grad,
                                   Meter_pro_Sekunde,Millimeter_pro_Stunde,
                                   Millimeter,Meter,Lux,Zentimeter);

ENTITY Umfeldmessstelle
ABSTRACT SUPERTYPE OF (ONEOF(VBA_Wetterstation,SWIS_GMA_Messstelle))
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Nummer                        : INTEGER;
   Messeinricht_Schadstoffimmiss : OPTIONAL SET [1:?] OF STRING(99);
--- Relationen :
   hat_verwaltungstechn_Zuordnung: verwaltungstechn_Zuordnung_UM;
   hat_oertliche_Zuordnung       : oertliche_Zuordnung_UM;
   hat_Messdaten                 : SET [1:?] OF Messdaten;
   hat_Erfassungsmodalitaeten    : Erfassungsmodalitaeten;
   hat_Detektoren_Umfelddatenerfg: SET [1:?] OF Detektoren_Umfelddatenerfassg;
END_ENTITY;

ENTITY VBA_Wetterstation
SUBTYPE OF (Umfeldmessstelle);
--- Attribute :
   Nutzungsart                   : OPTIONAL STRING(50);
--- Relationen :
END_ENTITY;

ENTITY SWIS_GMA_Messstelle
SUBTYPE OF (Umfeldmessstelle);
--- Attribute :
   Nutzungsart                   : OPTIONAL STRING(30);
--- Relationen :
END_ENTITY;

ENTITY Messdaten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Umfang_Umfelddaten        : OPTIONAL SET [1:?] OF Umfang_Umfelddaten;
   hat_Zaehlintervalllaenge      : OPTIONAL SET [1:?] OF Zaehlintervalllaenge;
INVERSE
   von_Umfeldmessstelle          : SET [0:?] OF Umfeldmessstelle
                                       FOR hat_Messdaten;
END_ENTITY;

ENTITY Erfassungsmodalitaeten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Erfassungsbereich         : Erfassungsbereich;
   hat_Zaehlzeitraum             : Zaehlzeitraum;
INVERSE
   von_Umfeldmessstelle          : SET [0:?] OF Umfeldmessstelle
                                       FOR hat_Erfassungsmodalitaeten;
END_ENTITY;

ENTITY Lage_der_Sensoren;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Lage_der_Sensoren VALUES (1,'in der Fahrbahn')
INSERT INTO Lage_der_Sensoren VALUES (2,'neben der Fahrbahn')
INSERT INTO Lage_der_Sensoren VALUES (3,'in und neben der Fahrbahn')
INSERT INTO Lage_der_Sensoren VALUES (4,'außerhalb des Straßenbereichs')

   END_SQL
*)

ENTITY Erfassungsbereich
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   von_Netzknoten                : INTEGER;  -- ISSUE 160
   nach_Netzknoten               : INTEGER;  -- ISSUE 160
   Lage_der_Sensoren             : Lage_der_Sensoren;
--- Relationen :
INVERSE
   von_Erfassungsmodalitaeten    : SET [0:?] OF Erfassungsmodalitaeten
                                       FOR hat_Erfassungsbereich;
END_ENTITY;

ENTITY Zaehlzeitraum
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Beginn_Erfassung              : Datum;
   Ende_Erfassung                : OPTIONAL Datum;
--- Relationen :
INVERSE
   von_Erfassungsmodalitaeten    : SET [0:?] OF Erfassungsmodalitaeten
                                       FOR hat_Zaehlzeitraum;
END_ENTITY;

ENTITY Detektoren_Umfelddatenerfassg
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   zugehoerige_EAKs              : SET [1:?] OF STRING(99);
   Einsatzzeit                   : SET [1:?] OF STRING(50);
   Betriebszeit                  : SET [1:?] OF STRING(50);
--- Relationen :
INVERSE
   von_Umfeldmessstelle          : SET [0:?] OF Umfeldmessstelle
                                       FOR hat_Detektoren_Umfelddatenerfg;
END_ENTITY;

ENTITY Umfang_Umfelddaten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   erfasste_Daten                : SET [1:?] OF INTEGER;
   Ermittlung_Schadstoffimmiss   : OPTIONAL SET [1:?] OF STRING(99);
--- Relationen :
   hat_Witterungsdaten           : SET [1:8] OF Witterungsdaten;
   hat_Umfelddaten               : OPTIONAL SET [1:2] OF Umfelddaten;
   hat_witterungsbed_Strassenzust: SET [1:10] OF witterungsbed_Strassenzustand;
INVERSE
   von_Messdaten                 : SET [0:?] OF Messdaten
                                             FOR hat_Umfang_Umfelddaten;
END_ENTITY;

ENTITY Witterungsdaten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Luftdruck                     : OPTIONAL Hektopascal;
   relative_Luftfeuchte          : OPTIONAL Prozent;
   Lufttemperatur                : OPTIONAL Grad_Celsius;
   Windrichtung                  : OPTIONAL Grad;
   mittlere_Windgeschwindigkeit  : OPTIONAL Meter_pro_Sekunde;
   Spitzenwindgeschwindigkeit    : OPTIONAL Meter_pro_Sekunde;
   Niederschlagsart              : OPTIONAL INTEGER;  -- ISSUE 167
   Niederschlagsintensitaet      : OPTIONAL Millimeter_pro_Stunde;
   Niederschlagsmenge            : OPTIONAL Millimeter;
--- Relationen :
INVERSE
   von_Umfang_Umfelddaten        : SET [0:?] OF Umfang_Umfelddaten
                                             FOR hat_Witterungsdaten;
WHERE
   relative_Luftfeuchte_sinnvoll : { 10 <= relative_Luftfeuchte <= 100 };
   (* BEDINGUNG ( relative_Luftfeuchte >= 10 ) AND
                ( relative_Luftfeuchte <= 100 ) *)
   Lufttemperatur_sinnvoll       : { -30 <= Lufttemperatur <= 60 };
   (* BEDINGUNG ( Lufttemperatur >= -30 ) AND ( Lufttemperatur <= 60 ) *)
   mittlere_Windgeschw_sinnvoll  : mittlere_Windgeschwindigkeit <= 60;
   Spitzenwindgeschwind_sinnvoll : Spitzenwindgeschwindigkeit <= 60;
   Niederschlagsintensit_sinnvoll: Niederschlagsintensitaet <= 200;
END_ENTITY;

ENTITY Umfelddaten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Sichtweite                    : OPTIONAL Meter;
   Helligkeit                    : OPTIONAL Lux;
--- Relationen :
INVERSE
   von_Umfang_Umfelddaten        : SET [0:?] OF Umfang_Umfelddaten
                                             FOR hat_Umfelddaten;
WHERE
   Sichtweite_sinnvoll           : { 10 <= Sichtweite <= 1000 };
   (* BEDINGUNG ( Sichtweite >= 10 ) AND ( Sichtweite <= 1000 ) *)
   Helligkeit_sinnvoll           : { 0 <= Helligkeit <= 60000 };
   (* BEDINGUNG ( Helligkeit >= 0 ) AND ( Helligkeit <= 60000 ) *)
END_ENTITY;

ENTITY witterungsbed_Strassenzustand
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Zustand_Fahrbahnoberflaeche   : OPTIONAL INTEGER;  --  ISSUE 167
   Wasserfilmdicke               : OPTIONAL Millimeter;
   Fahrbahnoberflaechentemperatur: OPTIONAL Grad_Celsius;
   Taupunkttemperatur            : OPTIONAL Grad_Celsius;
   Gefrierpunkttemperatur        : OPTIONAL Grad_Celsius;
   Restsalzgehalt                : OPTIONAL Prozent;
   Schneehoehe                   : OPTIONAL Zentimeter;
   Bodentemperatur_in_Tiefe_1    : OPTIONAL Grad_Celsius;
   Bodentemperatur_in_Tiefe_2    : OPTIONAL Grad_Celsius;
   Bodentemperatur_in_Tiefe_3    : OPTIONAL Grad_Celsius;
--- Relationen :
INVERSE
   von_Umfang_Umfelddaten        : SET [0:?] OF Umfang_Umfelddaten
                                       FOR hat_witterungsbed_Strassenzust;
WHERE
   Fahrbahnoberfltemp_sinnvoll   : { -30 <= Fahrbahnoberflaechentemperatur
                                         <= 80 };
   (* BEDINGUNG ( Fahrbahnoberflaechentemperatur >= -30 ) AND
                ( Fahrbahnoberflaechentemperatur <= 80 ) *)
   Taupunkttemperatur_sinnvoll   : { -30 <= Taupunkttemperatur <= 60 };
   (* BEDINGUNG ( Taupunkttemperatur >= -30 ) AND
                ( Taupunkttemperatur <= 60 ) *)
   Gefrierpunkttemp_sinnvoll     : { -30 <= Gefrierpunkttemperatur <= 0 };
   (* BEDINGUNG ( Gefrierpunkttemperatur >= -30 ) AND
                ( Gefrierpunkttemperatur <= 0 ) *)
   Restsalzgehalt_sinnvoll       : { 0 <= Restsalzgehalt <= 100 };
   (* BEDINGUNG ( Restsalzgehalt >= 0 ) AND ( Restsalzgehalt <= 100 ) *)
   Schneehoehe_sinnvoll          : { 0 <= Schneehoehe <= 200 };
   (* BEDINGUNG ( Schneehoehe >= 0 ) AND ( Schneehoehe <= 200 ) *)
   Bodentemp_in_Tiefe_1_sinnvoll : { -30 <= Bodentemperatur_in_Tiefe_1 <= 80 };
   (* BEDINGUNG ( Bodentemperatur_in_Tiefe_1 >= -30 ) AND
                ( Bodentemperatur_in_Tiefe_1 <= 80 ) *)
   Bodentemp_in_Tiefe_2_sinnvoll : { -30 <= Bodentemperatur_in_Tiefe_2 <= 80 };
   (* BEDINGUNG ( Bodentemperatur_in_Tiefe_2 >= -30 ) AND
                ( Bodentemperatur_in_Tiefe_2 <= 80 ) *)
   Bodentemp_in_Tiefe_3_sinnvoll : { -30 <= Bodentemperatur_in_Tiefe_3 <= 80 };
   (* BEDINGUNG ( Bodentemperatur_in_Tiefe_3 >= -30 ) AND
                ( Bodentemperatur_in_Tiefe_3 <= 80 ) *)
END_ENTITY;

ENTITY verwaltungstechn_Zuordnung_UM
SUBTYPE OF (verwaltungstechn_Zuordnung);
--- Attribute :
--- Relationen :
INVERSE
   von_Umfeldmessstelle  : SET [0:?] OF Umfeldmessstelle
                                             FOR hat_verwaltungstechn_Zuordnung;
END_ENTITY;

ENTITY oertliche_Zuordnung_UM
SUBTYPE OF (oertliche_Zuordnung);
--- Attribute :
--- Relationen :
INVERSE
   von_Umfeldmessstelle  : SET [0:?] OF Umfeldmessstelle
                                             FOR hat_oertliche_Zuordnung;
END_ENTITY;

ENTITY Zaehlintervalllaenge;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Zaehlintervalllaenge VALUES (1,'60 min')
INSERT INTO Zaehlintervalllaenge VALUES (2,'30 min')
INSERT INTO Zaehlintervalllaenge VALUES (3,'15 min')
INSERT INTO Zaehlintervalllaenge VALUES (4,'1 min')
INSERT INTO Zaehlintervalllaenge VALUES (5,'5 min')

   END_SQL
*)

END_SCHEMA; -- Umfeldmesstelle
SCHEMA Unfall;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Formale Versionierung

29.06.2004 - 1.006 (1.009)
Kürzung von Bezeichnern (SQL)

03.09.2003 - 1.005 (1.008)
Korrektur von Währungsangaben
Korrektur DTV-Bezug
Korrekturen gemäß A0027

31.05.2002 - 1.004 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

24.10.2001 - 1.003 (1.005)
Korrekturen in Schlüsseltabellen

12.09.2001 - 1.002 (1.004)
Schema komplett bezüglich EUDAS-95 überarbeitet

11.12.2000 - 1.001 (1.002)
Verlegung von oertliche_Zuordnung in das Schema Strassennetz
Verlegung von verwaltungstechn_Zuordnung in das Schema Administration

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Strasse_abstrakt,Betriebskilometer,
                             Punktobjekt_stat);

REFERENCE FROM Administration (Verwaltungsbezirk_abstrakt,
                               Strassenbaudienststelle_abstrakt,OD_FS,
                               Polizeidienststelle);

REFERENCE FROM Verkehrsstaerke (DTV);

REFERENCE FROM Geometrieschema (Punktobjekt_Modell);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Datum,Wochentag,UhrzeitOKSTRA_Schluesseltabelle,
                                   Datum,Wochentag,Uhrzeit,
                                   Kilogramm,Anzahl_einstellig,Anzahl_zweistellig,
                                   Stundenkilometer,Promille,Jahr,Monat,Kilowatt,
                                   Kubikzentimeter,Betrag,Waehrungsangabe);

ENTITY Unfall
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Paginiernummer                : STRING(5);               -- EUDAS-95, 2
   laufende_jaehrliche_Nummer    : OPTIONAL INTEGER;        -- EUDAS-95, 54.1
   lfd_Nr_d_Unfallhaeufungsstelle: OPTIONAL INTEGER;        -- EUDAS-95, 54.4
--- Relationen :
   Unfallort                     : OPTIONAL Angaben_zum_Unfallort;
   Unfallzeit                    : OPTIONAL Angaben_zur_Unfallzeit;
   Unfallgeschehen               : OPTIONAL Angaben_zum_Unfallgeschehen;
   Unfallumstaende               : OPTIONAL Angaben_zu_Unfallumstaenden;
   Unfallbeteiligte              : OPTIONAL Angaben_zu_Unfallbeteiligten;
   DV_Merkmale_StaLa             : OPTIONAL DV_Merkmale_StaLa;
END_ENTITY;

ENTITY Angaben_zum_Unfallort
SUBTYPE OF (Punktobjekt_Modell);
--- Attribute :
   Fahrtrichtung                 : OPTIONAL Fahrtrichtung;  -- EUDAS-95, 29
   Teilabschnittsnummer          : OPTIONAL INTEGER;        -- EUDAS-95, 43.2
--- Relationen :
   in_Verwaltungsbezirk          : OPTIONAL SET[1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
                                                            -- EUDAS-95, 3
   bei_Bauamt                    : OPTIONAL SET[1:?] OF Strassenbaudienststelle_abstrakt; (* D *)
                                                            -- EUDAS-95, 48
   bei_Polizeidienststelle       : OPTIONAL Polizeidienststelle;
                                                            -- EUDAS-95, 4
   Ortslage_gemaess_SIB          : OPTIONAL OD_FS;          -- EUDAS-95, 45.2
   auf_klassifizierter_Strasse   : OPTIONAL SET[1:?] OF Strasse_abstrakt;
                                                 (* D *)    -- EUDAS-95, 25-27
   auf_kommunaler_Strasse        : OPTIONAL kommunale_Strasse;
                                                            -- EUDAS-95, 30-31
   bei_Betriebskilometer         : OPTIONAL SET[1:?] OF Betriebskilometer;
                                                   (* D *)  -- EUDAS-95, 28
   an_Strassenpunkt              : OPTIONAL Unfallort_Strassenpunkt;
                                                            -- EUDAS-95, 32-36
   einm_klassifiz_Strasse_am_Anfg: OPTIONAL SET[1:?] OF Strasse_abstrakt;
                                                 (* D *)    -- EUDAS-95, 41.1
   einm_klassifiz_Strasse_am_Ende: OPTIONAL SET[1:?] OF Strasse_abstrakt;
                                                 (* D *)    -- EUDAS-95, 41.2
   einmuendende_kommunale_Strasse: OPTIONAL kommunale_Strasse;
                                                            -- EUDAS-95, 41.3
INVERSE
   von_Unfall                    : Unfall FOR Unfallort;
END_ENTITY;

ENTITY Fahrtrichtung;   -- EUDAS-95, 29
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);   -- EUDAS-95, 29
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Fahrtrichtung VALUES (1,'Fahrtrichtung in aufsteigender Stationierungsrichtung')
INSERT INTO Fahrtrichtung VALUES (2,'Fahrtrichtung in absteigender Stationierungsrichtung')

   END_SQL
*)

ENTITY kommunale_Strasse      -- vorübergehende Modellierung bis zur Integration
SUBTYPE OF (OKSTRA_Objekt);   -- des kommunalen Strassennetzes in den OKSTRA

--- Attribute :
   Strassenschluessel            : STRING(9);               -- EUDAS-95, 30,41.3
   Hausnummer                    : INTEGER;                 -- EUDAS-95, 31
--- Relationen :
INVERSE
   von_Unfallort                 : Angaben_zum_Unfallort
                                      FOR auf_kommunaler_Strasse;
   von_Unfallort_einmuendend     : Angaben_zum_Unfallort
                                      FOR einmuendende_kommunale_Strasse;
END_ENTITY;

ENTITY Unfallort_Strassenpunkt  -- EUDAS-95, 32-36
SUBTYPE OF (Punktobjekt_stat);
--- Attribute :
--- Relationen :
INVERSE
   von_Unfallort                 : Angaben_zum_Unfallort FOR an_Strassenpunkt;
END_ENTITY;

ENTITY Angaben_zur_Unfallzeit
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Unfalldatum                   : Datum;                   -- EUDAS-95, 5
   Wochentag                     : OPTIONAL Wochentag;      -- EUDAS-95, 6
   Unfallzeit                    : Uhrzeit;                 -- EUDAS-95, 7
   Feiertag                      : OPTIONAL Boolean;        -- EUDAS-95, 47
--- Relationen :
INVERSE
   von_Unfall                    : Unfall FOR Unfallzeit;
END_ENTITY;

ENTITY Angaben_zum_Unfallgeschehen
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Unfallart                     : Unfallart;               -- EUDAS-95, 12
   vorlaeufige_Unfallursache     : OPTIONAL SET[1:2] OF Unfallursache;
                                                            -- EUDAS-95, 21
   Unfallkategorie               : Unfallkategorie;         -- EUDAS-95, 23
   Unfalltyp                     : Unfalltyp;               -- EUDAS-95, 24
   Gesamtsachschaden             : OPTIONAL Betrag;         -- EUDAS-95, 50
   Waehrung_Gesamtsachschaden    : OPTIONAL Waehrungsangabe;-- EUDAS-95, 50
   Kfz_fahrbereit                : OPTIONAL BOOLEAN;        -- (EUDAS-95, 37.2)
--- Relationen :
INVERSE
   von_Unfall                    : Unfall FOR Unfallgeschehen;
END_ENTITY;

ENTITY Unfallart;    -- EUDAS-95, 12
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Unfallart VALUES (1,'Zusammenstoß mit Fahrzeug, das anfährt, anhält, im ruhenden Verkehr steht')
INSERT INTO Unfallart VALUES (2,'Zusammenstoß mit Fahrzeug, das vorausfährt oder wartet')
INSERT INTO Unfallart VALUES (3,'Zusammenstoß mit Fahrzeug, das seitlich in gleicher Richtung fährt')
INSERT INTO Unfallart VALUES (4,'Zusammenstoß mit Fahrzeug, das entgegenkommt')
INSERT INTO Unfallart VALUES (5,'Zusammenstoß mit Fahrzeug, das einbiegt oder kreuzt')
INSERT INTO Unfallart VALUES (6,'Zusammenstoß zwischen Fahrzeug und Fußgänger')
INSERT INTO Unfallart VALUES (7,'Aufprall auf Hindernis auf der Fahrbahn')
INSERT INTO Unfallart VALUES (8,'Abkommen von Fahrbahn nach rechts')
INSERT INTO Unfallart VALUES (9,'Abkommen von Fahrbahn nach links')
INSERT INTO Unfallart VALUES (0,'Unfall anderer Art')

   END_SQL
*)

ENTITY Unfallursache;    -- EUDAS-95, 21
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Unfallursache VALUES (70,'Glatte oder schlüpfrige Fahrbahn durch Öl')
INSERT INTO Unfallursache VALUES (71,'Glatte oder schlüpfrige Fahrbahn durch andere Verunreinigungen')
INSERT INTO Unfallursache VALUES (72,'Glatte oder schlüpfrige Fahrbahn durch Schnee/Eis')
INSERT INTO Unfallursache VALUES (73,'Glatte oder schlüpfrige Fahrbahn durch Regen')
INSERT INTO Unfallursache VALUES (74,'Glatte oder schlüpfrige Fahrbahn durch andere Einflüsse (Laub/Lehm)')
INSERT INTO Unfallursache VALUES (75,'Spurrillen im Zusammenhang mit Regen/Schnee/Eis')
INSERT INTO Unfallursache VALUES (76,'Anderer Zustand der Straße')
INSERT INTO Unfallursache VALUES (77,'Kein ordnungsgemäßer Zustand der Verkehrszeichen/-Einrichtungen')
INSERT INTO Unfallursache VALUES (78,'Mangelhafte Beleuchtung der Straße')
INSERT INTO Unfallursache VALUES (79,'Mangelhafte Sicherung von Bahnübergängen')
INSERT INTO Unfallursache VALUES (80,'Sichtbehinderung durch Nebel')
INSERT INTO Unfallursache VALUES (81,'Sichtbehinderung durch starken Regen, Hagel, Schneegestöber')
INSERT INTO Unfallursache VALUES (82,'Sichtbehinderung durch blendende Sonne')
INSERT INTO Unfallursache VALUES (83,'Seitenwind')
INSERT INTO Unfallursache VALUES (84,'Sichtbehinderung durch Unwetter oder sonstigen Witterungseinfluss')
INSERT INTO Unfallursache VALUES (85,'Nicht oder unzureichend gesicherte gesicherte Arbeitsstelle auf der Fahrbahn')
INSERT INTO Unfallursache VALUES (86,'Wild auf der Fahrbahn')
INSERT INTO Unfallursache VALUES (87,'Anderes Tier auf der Fahrbahn')
INSERT INTO Unfallursache VALUES (88,'Sonstiges Hindernis auf der Fahrbahn')
INSERT INTO Unfallursache VALUES (89,'Sonstige Ursachen')

   END_SQL
*)

ENTITY Unfallkategorie;    -- EUDAS-95, 23
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Unfallkategorie VALUES (1,'Unfall mit Getöteten')
INSERT INTO Unfallkategorie VALUES (2,'Unfall mit Schwerverletzten')
INSERT INTO Unfallkategorie VALUES (3,'Unfall mit Leichtverletzten')
INSERT INTO Unfallkategorie VALUES (4,'Unfall mit schwerem Sachschaden')
INSERT INTO Unfallkategorie VALUES (5,'Unfall mit leichtem Sachschaden')
INSERT INTO Unfallkategorie VALUES (6,'sonstiger Sachschadensunfall unter Alkoholeinwirkung')
INSERT INTO Unfallkategorie VALUES (8,'schwerwiegender Unfall mit Sachschaden (mindestens ein Kfz nicht fahrbereit (einschließlich Alkoholeinwirkung')
INSERT INTO Unfallkategorie VALUES (9,'sonstiger Sachschadensunfall ohne Alkoholeinwirkung')

   END_SQL
*)

ENTITY Unfalltyp;    -- EUDAS-95, 24
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Unfalltyp VALUES (1,'Fahrunfall')
INSERT INTO Unfalltyp VALUES (2,'Abbiegeunfall')
INSERT INTO Unfalltyp VALUES (3,'Einbiege-/Kreuzungs-Unfall')
INSERT INTO Unfalltyp VALUES (4,'Unfall durch Straße überschreitenden Fußgänger')
INSERT INTO Unfalltyp VALUES (5,'Unfall durch haltendes oder parkendes Fahrzeug')
INSERT INTO Unfalltyp VALUES (6,'Längsunfall')
INSERT INTO Unfalltyp VALUES (7,'Sonstiger Unfall')

   END_SQL
*)

ENTITY Angaben_zu_Unfallumstaenden
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Charakteristik_d_Unfallstelle : OPTIONAL SET[1:3] OF
                                            Charakteristik_d_Unfallstelle;
                                                            -- EUDAS-95, 13
   Besonderheiten_d_Unfallstelle : OPTIONAL SET[1:3] OF
                                            Besonderheiten_d_Unfallstelle;
                                                            -- EUDAS-95, 14
   Verkehrsregelung              : OPTIONAL SET[1:2] OF Verkehrsregelung;
                                                            -- EUDAS-95, 15
   Geschwindigkeitsbegrenzung    : OPTIONAL Stundenkilometer;
                                                            -- EUDAS-95, 16
   Lichtverhaeltnisse            : OPTIONAL SET[1:2] OF Lichtverhaeltnisse;
                                                            -- EUDAS-95, 17
   Strassenbefestigung           : OPTIONAL Strassenbefestigung;  -- bis 1994
                                                            -- EUDAS-95, 18
   Strassenzustand               : OPTIONAL SET[1:3] OF Strassenzustand;
                                                            -- EUDAS-95, 19
   Witterung                     : OPTIONAL SET[1:3] OF Witterung;  -- bis 1994
                                                            -- EUDAS-95, 20
   Alkoholeinwirkung             : OPTIONAL BOOLEAN;        -- EUDAS-95, 51
   Verkehrsflucht                : OPTIONAL BOOLEAN;        -- EUDAS-95, 52
   Aquaplaning                   : OPTIONAL BOOLEAN;        -- EUDAS-95, 53
   Aufprall_auf_Hindernis        : OPTIONAL Hindernisart;   -- EUDAS-95, 37.1
--- Relationen :
   hat_DTV_im_Gesamtquerschnitt  : OPTIONAL DTV;            -- EUDAS-95, 46.1-2
                                                            -- EUDAS-95, 54.3
                                   -- voruebergehend, bis zur Ueberarbeitung
                                   -- des Schemas Verkehrsstaerke
INVERSE
   von_Unfall                    : Unfall FOR Unfallumstaende;
END_ENTITY;

ENTITY Charakteristik_d_Unfallstelle;    -- EUDAS-95, 13
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Charakteristik_d_Unfallstelle VALUES (1,'Kreuzung')
INSERT INTO Charakteristik_d_Unfallstelle VALUES (2,'Einmündung/Anschluß')
INSERT INTO Charakteristik_d_Unfallstelle VALUES (3,'Grundstücksein- oder -ausfahrt')
INSERT INTO Charakteristik_d_Unfallstelle VALUES (4,'Steigung/Gefälle')
INSERT INTO Charakteristik_d_Unfallstelle VALUES (5,'Kuppe')
INSERT INTO Charakteristik_d_Unfallstelle VALUES (6,'Kurve')
INSERT INTO Charakteristik_d_Unfallstelle VALUES (8,'Steigung')
INSERT INTO Charakteristik_d_Unfallstelle VALUES (9,'Gefälle')

   END_SQL
*)

ENTITY Besonderheiten_d_Unfallstelle;    -- EUDAS-95, 14
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Besonderheiten_d_Unfallstelle VALUES (1,'Unübersichtlich')
INSERT INTO Besonderheiten_d_Unfallstelle VALUES (2,'Schienengleicher Wegübergang')
INSERT INTO Besonderheiten_d_Unfallstelle VALUES (3,'Fußgängerüberweg (Zebrastreifen)')
INSERT INTO Besonderheiten_d_Unfallstelle VALUES (4,'Fußgängerfurt')
INSERT INTO Besonderheiten_d_Unfallstelle VALUES (5,'Haltestelle')
INSERT INTO Besonderheiten_d_Unfallstelle VALUES (6,'Arbeitsstelle')
INSERT INTO Besonderheiten_d_Unfallstelle VALUES (7,'Verkehrsberuhigter Bereich (Z325)')
INSERT INTO Besonderheiten_d_Unfallstelle VALUES (8,'Querungshilfe')
INSERT INTO Besonderheiten_d_Unfallstelle VALUES (9,'Kreisverkehr')

   END_SQL
*)

ENTITY Verkehrsregelung;    -- EUDAS-95, 15
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Verkehrsregelung VALUES (7,'Verkehrsregelungsposten')
INSERT INTO Verkehrsregelung VALUES (8,'Lichtzeichenanlage in Betrieb')
INSERT INTO Verkehrsregelung VALUES (9,'Lichtzeichenanlage außer Betrieb')

   END_SQL
*)

ENTITY Lichtverhaeltnisse;    -- EUDAS-95, 17
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Lichtverhaeltnisse VALUES (0,'Tageslicht')
INSERT INTO Lichtverhaeltnisse VALUES (1,'Dämmerung')
INSERT INTO Lichtverhaeltnisse VALUES (2,'Dunkelheit')
INSERT INTO Lichtverhaeltnisse VALUES (3,'Straßenbeleuchtung in Betrieb')
INSERT INTO Lichtverhaeltnisse VALUES (4,'Straßenbeleuchtung außer Betrieb')

   END_SQL
*)

ENTITY Strassenbefestigung;    -- EUDAS-95, 18, bis 1994
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Strassenbefestigung VALUES (5,'Betondecke')
INSERT INTO Strassenbefestigung VALUES (6,'Schwarzdecke')
INSERT INTO Strassenbefestigung VALUES (7,'Pflaster')
INSERT INTO Strassenbefestigung VALUES (8,'Sonstige befestigte Straße')
INSERT INTO Strassenbefestigung VALUES (9,'Unbefestigte Straße')

   END_SQL
*)

ENTITY Strassenzustand;    -- EUDAS-95, 19
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Strassenzustand VALUES (0,'Trocken')
INSERT INTO Strassenzustand VALUES (1,'Nass/Feucht')
INSERT INTO Strassenzustand VALUES (2,'Glatteis')
INSERT INTO Strassenzustand VALUES (3,'Schneeglätte')
INSERT INTO Strassenzustand VALUES (4,'Gestreut')
INSERT INTO Strassenzustand VALUES (5,'Schlüpfrigkeit (Öl, Dung, Laub usw.)')
INSERT INTO Strassenzustand VALUES (6,'Schadhafte Fahrbahn')
INSERT INTO Strassenzustand VALUES (7,'Winterglatt')

   END_SQL
*)

ENTITY Witterung;    -- EUDAS-95, 20, bis 1994
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Witterung VALUES (7,'Regen')
INSERT INTO Witterung VALUES (8,'Schneefall/Hagel')
INSERT INTO Witterung VALUES (9,'Nebel/Dunst')
INSERT INTO Witterung VALUES (0,'Sturm/Böen')

   END_SQL
*)

ENTITY Verkehrsstufe;    -- EUDAS-95, 46.3
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Verkehrsstufe VALUES (1,'Schwacher Verkehr')
INSERT INTO Verkehrsstufe VALUES (2,'Lebhafter Verkehr')
INSERT INTO Verkehrsstufe VALUES (3,'Dichter Verkehr')
INSERT INTO Verkehrsstufe VALUES (4,'Zähflüssiger Verkehr')
INSERT INTO Verkehrsstufe VALUES (5,'Stau')

   END_SQL
*)

ENTITY Hindernisart;    -- EUDAS-95, 37.1
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Hindernisart VALUES (0,'Baum')
INSERT INTO Hindernisart VALUES (1,'Mast')
INSERT INTO Hindernisart VALUES (2,'Widerlager')
INSERT INTO Hindernisart VALUES (3,'Schutzplanke')
INSERT INTO Hindernisart VALUES (4,'sonstiges Hindernis')
INSERT INTO Hindernisart VALUES (5,'kein Aufprall')

   END_SQL
*)

ENTITY Angaben_zu_Unfallbeteiligten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Anzahl_der_Beteiligten        : Anzahl_zweistellig;      -- EUDAS-95, 8
   Anzahl_der_Getoeteten         : Anzahl_zweistellig;      -- EUDAS-95, 9
   Anzahl_der_Schwerverletzten   : Anzahl_zweistellig;      -- EUDAS-95, 10
   Anzahl_der_Leichtverletzten   : Anzahl_zweistellig;      -- EUDAS-95, 11
--- Relationen :
   hat_Unfallbeteiligte          : SET[1:?] OF Unfallbeteiligter;
INVERSE
   von_Unfall                    : Unfall FOR Unfallbeteiligte;
END_ENTITY;

ENTITY Unfallbeteiligter
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Alter_des_Beteiligten         : OPTIONAL INTEGER;        -- EUDAS-95, 55
   Geschlecht                    : OPTIONAL Geschlecht;     -- EUDAS-95, 56
   hat_spezifische_Unfallursachen: OPTIONAL SET[1:3] OF Unfallursache;
                                                            -- EUDAS-95, 57
   Art_der_Verkehrsbeteiligung   : OPTIONAL Art_der_Verkehrsbeteiligung;
                                                            -- EUDAS-95, 58
   Ortskenntnisse_vorhanden      : OPTIONAL BOOLEAN;        -- EUDAS-95, 60
   Wohnsitz_Auslaender           : OPTIONAL Wohnsitz_Ausl;  -- EUDAS-95, 61
   Nationalitaetenzeichen        : OPTIONAL STRING(3);      -- EUDAS-95, 62
   Art_der_Verletzung            : OPTIONAL Art_der_Verletzung;
                                                            -- EUDAS-95, 63
   Anzahl_Fahrzeugbenutzer       : Anzahl_zweistellig;      -- EUDAS-95, 64
   Anzahl_getoetete_Mitfahrer    : Anzahl_zweistellig;      -- EUDAS-95, 65
   Anzahl_schwerverl_Mitfahrer   : Anzahl_zweistellig;      -- EUDAS-95, 66
   Anzahl_leichtverl_Mitfahrer   : Anzahl_zweistellig;      -- EUDAS-95, 67
   Fahrerlaubnis_vorhanden       : OPTIONAL BOOLEAN;        -- (EUDAS-95, 69.4)
   Datum_Fahrerlaubnis           : OPTIONAL Datum;          -- (EUDAS-95, 69.4)
   Geburtsdatum                  : OPTIONAL Datum;          -- (EUDAS-95, 55)
   Blutalkoholkonzentration      : OPTIONAL Promille;       -- (EUDAS-95, 51)
   Verkehrsflucht                : OPTIONAL BOOLEAN;        -- (EUDAS-95, 52)
   Ordnungsnummer                : OPTIONAL INTEGER;
--- Relationen :
   hat_verletzte_Mitfahrer       : OPTIONAL SET[1:?] OF Mitfahrer;
   hat_Angaben_zum_Kraftfahrzeug : OPTIONAL Unfallfahrzeug;
INVERSE
   von_Ang_zu_Unfallbeteiligten  : Angaben_zu_Unfallbeteiligten
                                      FOR hat_Unfallbeteiligte;
END_ENTITY;

ENTITY Geschlecht;    -- EUDAS-95, 56
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Geschlecht VALUES (1,'m')
INSERT INTO Geschlecht VALUES (2,'w')

   END_SQL
*)

ENTITY Art_der_Verkehrsbeteiligung;    -- EUDAS-95, 58
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_der_Verkehrsbeteiligung VALUES (1,'Moped/Mokick')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (2,'Mofa 25')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (11,'Kraftrad/Motorrad')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (12,'Leichtkraftrad/Kleinkraftrad')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (15,'Kraftroller')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (21,'Personenkraftwagen')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (31,'Kraftomnibus')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (32,'Reisebus')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (33,'Linienbus')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (34,'Schulbus')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (35,'Oberleitungsomnibus')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (41,'Liefer- und Lastkraftwagen ohne Anhänger')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (43,'Liefer- und Lastkraftwagen mit Tankauflagen, ohne Anhänger')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (45,'Liefer- und Lastkraftwagen mit Anhänger')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (48,'Liefer- und Lastkraftwagen mit Tankauflagen, mit Anhänger')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (51,'Sattelschlepper')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (52,'Sattelschlepper mit Auflieger als Tankwagen')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (53,'Landwirtschaftl. Zugmaschinen')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (54,'Andere Zugmaschinen')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (55,'Andere Zugmaschinen mit Tankwagen zur Beförderung von gefährlichen Gütern')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (57,'Tankkraftwagen zur Beförderung von gefährlichen Gütern')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (58,'Lastkraftwagen mit Spezialaufbau')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (59,'übrige Kraftfahrzeuge')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (61,'Straßenbahnen')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (62,'Eisenbahnen')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (71,'Fahrräder')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (81,'Fußgänger')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (82,'Handwagen,-karren')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (83,'Tierführer,-treiber')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (91,'Bespannte Fuhrwerke')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (92,'Sonstige und unbekannte Fahrzeuge')
INSERT INTO Art_der_Verkehrsbeteiligung VALUES (93,'Andere Personen')

   END_SQL
*)

ENTITY Wohnsitz_Ausl;    -- EUDAS-95, 61
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Wohnsitz_Ausl VALUES (1,'Wohnsitz in Deutschland')
INSERT INTO Wohnsitz_Ausl VALUES (2,'Wohnsitz im Ausland')

   END_SQL
*)

ENTITY Art_der_Verletzung;    -- EUDAS-95, 63
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_der_Verletzung VALUES (1,'getötet')
INSERT INTO Art_der_Verletzung VALUES (2,'schwerverletzt')
INSERT INTO Art_der_Verletzung VALUES (3,'leichtverletzt')

   END_SQL
*)

ENTITY Mitfahrer
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   laufende_Nummer               : OPTIONAL INTEGER;
   Art_der_Verletzung            : OPTIONAL Art_der_Verletzung;
                                                            -- EUDAS-95, 63
   Geschlecht                    : OPTIONAL Geschlecht;     -- EUDAS-95, 56
   Alter_des_Mitfahrers          : OPTIONAL INTEGER;        -- EUDAS-95, 55
--- Relationen :
INVERSE
   von_Unfallteiligtem           : Unfallbeteiligter
                                      FOR hat_verletzte_Mitfahrer;
END_ENTITY;

ENTITY Unfallfahrzeug
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Kennzeichen                   : OPTIONAL STRING(10);     -- EUDAS-95, 59
   Nationalitaetenkennzeichen    : OPTIONAL STRING(3);      -- EUDAS-95, 62
   zulaessiges_Gesamtgewicht     : OPTIONAL Kilogramm;      -- EUDAS-95, 68,69.1
   Zusatzsignatur_LKR_und_PKW    : OPTIONAL Art_der_Verkehrsbeteiligung;
                                                            -- EUDAS-95, 68.2
   Freisetzung_von_Gefahrgut     : OPTIONAL BOOLEAN;        -- EUDAS-95, 69.2
   Jahr_Erstzulassung            : OPTIONAL Jahr;           -- EUDAS-95, 69.3
   Gefahrklasse                  : OPTIONAL Gefahrklasse;   -- EUDAS-95, 101
   Gefahrgutkennzeichen          : OPTIONAL Gefahrgutkennzeichen;
                                                            -- EUDAS-95, 102
   Hoehe_des_Sachschadens        : OPTIONAL Betrag;         -- EUDAS-95, 103
   Waehrung_Sachschaden          : OPTIONAL Waehrungsangabe;-- EUDAS-95, 103
   Aufprall_auf_Hindernis        : OPTIONAL Hindernisart;   -- (EUDAS-95, 37.1)
   Kfz_fahrbereit                : OPTIONAL BOOLEAN;        -- (EUDAS-95, 37.2)
   Leergewicht                   : OPTIONAL Kilogramm;
   Anhaenger_vorhanden           : OPTIONAL BOOLEAN;
   Typschluessel                 : OPTIONAL STRING(11);
   Fahrzeugart                   : OPTIONAL STRING(2);
   Aufbauart                     : OPTIONAL STRING(2);
   Motorleistung                 : OPTIONAL Kilowatt;
   Hubraum                       : OPTIONAL Kubikzentimeter;
   Hoechstgeschwindigkeit        : OPTIONAL Stundenkilometer;
   Anzahl_der_Achsen             : OPTIONAL Anzahl_zweistellig;
   Anzahl_angetriebene_Achsen    : OPTIONAL Anzahl_einstellig;
   UN_Nummer                     : OPTIONAL STRING(4);
   sonstiges_befoerd_Gefahrgut   : OPTIONAL STRING(1);
   Nummer_der_Ausnahmeverordnung : OPTIONAL INTEGER;
   Zusatzgutachten_vorhanden     : OPTIONAL BOOLEAN;
--- Relationen :
   Kfz_in_Verwaltungsbezirk      : OPTIONAL SET[1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
INVERSE
   von_Unfallteiligtem           : Unfallbeteiligter
                                      FOR hat_Angaben_zum_Kraftfahrzeug;
END_ENTITY;

ENTITY Gefahrklasse;    -- EUDAS-95, 101
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(3) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(3);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

ENTITY Gefahrgutkennzeichen;    -- EUDAS-95, 102
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(4) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(4);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

ENTITY DV_Merkmale_StaLa
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   landesinterne_Angaben         : OPTIONAL STRING;
   Sondererhebungen              : OPTIONAL STRING(3);
   Berichtsjahr                  : OPTIONAL Jahr;
   Berichtsmonat                 : OPTIONAL Monat;
   Durchlaufnummer               : OPTIONAL Anzahl_zweistellig;
   Fehlerbyte                    : OPTIONAL STRING(1);
   Kennz_fuer_Materialergaenzung : OPTIONAL STRING(1);
--- Relationen :
   in_Bundesland                 : OPTIONAL SET[1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
INVERSE
   von_Unfall                    : Unfall FOR DV_Merkmale_StaLa;
END_ENTITY;

END_SCHEMA; -- Unfall
SCHEMA Dynamische_Beschilderung;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Formale Versionierung

29.06.2004 - 1.004 (1.009)
Kürzung von Bezeichnern (SQL)

03.09.2003 - 1.003 (1.008)
Korrektur der historischen Gültigkeitsdaten (SQL)

31.05.2002 - 1.002 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

11.12.2000 - 1.001 (1.002)
Symbolische Verweise für Netzknoten integriert
Verlegung von verwaltungstechn_Zuordnung in das Schema Administration

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Punktobjekt_stat,Punktobjekt_hist,
                             Streckenobjekt_hist,Netzknoten_abstrakt);

REFERENCE FROM Administration (verwaltungstechn_Zuordnung);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Anzahl,Anzahl_zweistellig,Datum);OKSTRA_Schluesseltabelle,
                                   Anzahl,Anzahl_zweistellig,Datum);

ENTITY dyn_verkehrsreg_Beschilderung
ABSTRACT SUPERTYPE OF (ONEOF(Streckenbeeinflussung,Richtungswechselbetrieb,
                             Wechselwegweisung,Knotenpunktbeeinflussung))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Name                          : OPTIONAL STRING(50);
--- Relationen :
   in_Kombination_v_Anlagentypen : OPTIONAL SET [1:?] OF
                                         Kombination_von_Anlagentypen; (* D *)
   hat_verwaltungstechn_Zuordnung: SET [1:?] OF verwaltungstechn_Zuordnung_dyn;
   hat_Anlagenausstattung        : SET [1:?] OF Anlagenausstattung;
   hat_Einsatzdauer              : Einsatzdauer;
END_ENTITY;

ENTITY Kombination_von_Anlagentypen
SUBTYPE OF (historisches_Objekt);
--- Attribute :
--- Relationen :
INVERSE
   gehoert_zu_dyn_verkehrsr_Besch: SET [2:4] OF dyn_verkehrsreg_Beschilderung
                                             FOR in_Kombination_v_Anlagentypen;
END_ENTITY;

ENTITY verwaltungstechn_Zuordnung_dyn
SUBTYPE OF (verwaltungstechn_Zuordnung);
--- Attribute :
--- Relationen :
INVERSE
   von_dynam_verkehrsreg_Beschild: SET [0:?] OF dyn_verkehrsreg_Beschilderung
                                       FOR hat_verwaltungstechn_Zuordnung;
END_ENTITY;

ENTITY Einsatzdauer
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Dauer_Art                     : Art_der_Dauer;
   Dauer_Laenge                  : STRING(30);  -- ISSUE 153
--- Relationen :
INVERSE
   von_dynam_verkehrsreg_Beschild: SET [0:?] OF dyn_verkehrsreg_Beschilderung
                                             FOR hat_Einsatzdauer;
END_ENTITY;

ENTITY Art_der_Dauer;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_der_Dauer VALUES (1,'vorübergehend')
INSERT INTO Art_der_Dauer VALUES (2,'längerfristig')

   END_SQL
*)

ENTITY Streckenbeeinflussung
SUBTYPE OF (dyn_verkehrsreg_Beschilderung);
--- Attribute :
--- Relationen :
   hat_Anlagentyp                : SET [1:?] OF SB_Anlagentyp;
   hat_Anzeigezustaende          : SET [1:?] OF SB_Anzeigezustaende;
   hat_Wirkungsbereiche          : SET [1:?] OF SB_Wirkungsbereiche; (* S 2 *)
END_ENTITY;

ENTITY SB_Anlagentyp
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Typ                           : Tab_SB_Anlagentyp;
--- Relationen :
INVERSE
   von_Streckenbeeinflussung     : SET [0:?] OF Streckenbeeinflussung
                                             FOR hat_Anlagentyp;
END_ENTITY;

ENTITY Tab_SB_Anlagentyp;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tab_SB_Anlagentyp VALUES (1,'Geschwindigkeitsbeeinflussung')
INSERT INTO Tab_SB_Anlagentyp VALUES (2,'Stauwarnanlage fest')
INSERT INTO Tab_SB_Anlagentyp VALUES (3,'Stauwarnanlage mobil')
INSERT INTO Tab_SB_Anlagentyp VALUES (4,'Tunnelsteuerung')
INSERT INTO Tab_SB_Anlagentyp VALUES (5,'Fahrstreifenzuteilung / Fahrstreifensperrung')
INSERT INTO Tab_SB_Anlagentyp VALUES (6,'Warnung vor witterungsbedingten Gefahren')
INSERT INTO Tab_SB_Anlagentyp VALUES (7,'Langsamfahrzeugkennung')
INSERT INTO Tab_SB_Anlagentyp VALUES (8,'sonst')

   END_SQL
*)

ENTITY SB_Anzeigezustaende
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   StVO_Zeichen                  : STRING(99);
   Zusatzzeichen                 : STRING(50);
--- Relationen :
INVERSE
   von_Streckenbeeinflussung     : SET [0:?] OF Streckenbeeinflussung
                                             FOR hat_Anzeigezustaende;
END_ENTITY;

ENTITY SB_Wirkungsbereiche  -- ISSUE 160
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
   Bereich                       : Tab_Wirkungsbereich;
   Richtungsangabe               : OPTIONAL STRING(28);
--- Relationen :
   beginnt_bei_Strassenpunkt     : SET [1:?] OF Wirkungsbereich_SP; (* D *)
   endet_bei_Strassenpunkt       : SET [1:?] OF Wirkungsbereich_SP; (* D *)
INVERSE
   von_Streckenbeeinflussung     : SET [0:?] OF Streckenbeeinflussung
                                             FOR hat_Wirkungsbereiche;
END_ENTITY;

ENTITY Tab_Wirkungsbereich;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tab_Wirkungsbereich VALUES (1,'Beeinflussungsbereich gilt für beide Richtungen')
INSERT INTO Tab_Wirkungsbereich VALUES (2,'Beeinflussungsbereich Richtung 1')
INSERT INTO Tab_Wirkungsbereich VALUES (3,'Beeinflussungsbereich Richtung 2')

   END_SQL
*)

ENTITY Wirkungsbereich_SP
SUBTYPE OF (Punktobjekt_stat);
--- Attribute :
--- Relationen :
INVERSE
   Beginn_von_SB_Wirkunsbereich  : SET [0:?] OF SB_Wirkungsbereiche
                                             FOR beginnt_bei_Strassenpunkt;
   Ende_von_SB_Wirkunsbereich    : SET [0:?] OF SB_Wirkungsbereiche
                                             FOR endet_bei_Strassenpunkt;
   Beginn_von_RW_Wirkunsbereich  : SET [0:?] OF RW_Wirkungsbereich
                                             FOR beginnt_bei_Strassenpunkt;
   Ende_von_RW_Wirkunsbereich    : SET [0:?] OF RW_Wirkungsbereich
                                             FOR endet_bei_Strassenpunkt;
END_ENTITY;

ENTITY Wechselwegweisung
SUBTYPE OF (dyn_verkehrsreg_Beschilderung);
--- Attribute :
   Anlagentyp                    : WW_Anlagentyp;
--- Relationen :
   hat_Anzeigezustaende          : SET [1:?] OF WW_Anzeigezustaende;
   hat_Wirkungsbereiche          : SET [1:?] OF WW_Wirkungsbereiche; (* S 2 *)
END_ENTITY;

ENTITY WW_Anzeigezustaende
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Anzeigezustand                : STRING(99);
--- Relationen :
INVERSE
   von_Wechselwegweisung         : SET [0:?] OF Wechselwegweisung
                                             FOR hat_Anzeigezustaende;
END_ENTITY;

ENTITY WW_Anlagentyp;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO WW_Anlagentyp VALUES (1,'additive Wechselwegweisung')
INSERT INTO WW_Anlagentyp VALUES (2,'substitutive Wechselwegweisung')

   END_SQL
*)

ENTITY WW_Wirkungsbereiche
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Bereich                       : Tab_Wirkungsbereich;
   Richtungsangabe               : OPTIONAL STRING(28);
   betroffene_BAB                : OPTIONAL SET [1:?] OF STRING(99);
                                   -- ISSUE 160
--- Relationen :
   beginnt_bei_Netzknoten        : SET [2:?] OF Netzknoten_abstrakt;   (* O *) -- ISSUE 160
   endet_bei_Netzknoten          : SET [2:?] OF Netzknoten_abstrakt;   (* O *) -- ISSUE 160
INVERSE
   von_Wechselwegweisung         : SET [0:?] OF Wechselwegweisung
                                             FOR hat_Wirkungsbereiche;
END_ENTITY;

ENTITY Knotenpunktbeeinflussung
SUBTYPE OF (dyn_verkehrsreg_Beschilderung);
--- Attribute :
--- Relationen :
   hat_Anlagentyp                : SET [1:?] OF KB_Anlagentyp; (* S 3 *)
   hat_Anzeigezustaende          : SET [1:?] OF KB_Anzeigezustaende;
   hat_Wirkungsbereich           : KB_Wirkungsbereich;
END_ENTITY;

ENTITY KB_Anlagentyp
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Typ                           : Tab_KB_Anlagentyp;
--- Relationen :
INVERSE
   von_Knotenpunktbeeinflussung  : SET [0:?] OF Knotenpunktbeeinflussung
                                             FOR hat_Anlagentyp;
END_ENTITY;

ENTITY Tab_KB_Anlagentyp;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tab_KB_Anlagentyp VALUES (1,'Fahrstreifenzuteilung im Knotenpunkt')
INSERT INTO Tab_KB_Anlagentyp VALUES (2,'Geschwindigkeitsbeeinflussung im Einfädelungsbereich' )
INSERT INTO Tab_KB_Anlagentyp VALUES (3,'Geschwindigkeitswarnanlage')
INSERT INTO Tab_KB_Anlagentyp VALUES (4,'Stauwarnanlage')
INSERT INTO Tab_KB_Anlagentyp VALUES (5,'sonst')

   END_SQL
*)

ENTITY KB_Anzeigezustaende
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Anzeigezustand                : STRING(99);
--- Relationen :
INVERSE
   von_Knotenpunktbeeinflussung  : SET [0:?] OF Knotenpunktbeeinflussung
                                             FOR hat_Anzeigezustaende;
END_ENTITY;

ENTITY KB_Wirkungsbereich
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Bereich                       : Tab_KB_Wirkungsbereich;
--- Relationen :
   ist_richtungsbezogener_WB     : OPTIONAL SET [1:?] OF richtungsbezogener_WB;
   ist_astbezogener_WB           : OPTIONAL SET [1:?] OF astbezogener_WB;
   hat_Angaben_zum_Knotenpunkt   : OPTIONAL SET [1:?] OF
                                                Angaben_zum_Knotenpunkt;
INVERSE
   von_Knotenpunktbeeinflussung  : SET [0:?] OF Knotenpunktbeeinflussung
                                             FOR hat_Wirkungsbereich;
WHERE
   richtungs_oder_ortsbezogen    : EXISTS(ist_richtungsbezogener_WB) XOR
                                   EXISTS(ist_astbezogener_WB);
   (* BEDINGUNG ( ( ist_richtungsbezogener_WB IS NOT NULL ) OR
                  ( ist_astbezogener_WB IS NOT NULL ) ) AND
                ( ( ist_richtungsbezogener_WB IS NULL ) OR
                  ( ist_astbezogener_WB IS NULL ) ) *)
END_ENTITY;

ENTITY Tab_KB_Wirkungsbereich;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tab_KB_Wirkungsbereich VALUES (1,'Beeinflussungsbereich gilt für beide Richtungen')
INSERT INTO Tab_KB_Wirkungsbereich VALUES (2,'Beeinflussungsbereich für eine Richtung')

   END_SQL
*)

ENTITY richtungsbezogener_WB
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Richtung_1                    : STRING(30);
   Richtung_2                    : OPTIONAL STRING(30);
--- Relationen :
INVERSE
   von_KB_Wirkungsbereich        : SET [0:?] OF KB_Wirkungsbereich
                                             FOR ist_richtungsbezogener_WB;
END_ENTITY;

ENTITY astbezogener_WB
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Rampenbezeichnung             : STRING(50);
   Astkennung                    : OPTIONAL SET [1:5] OF STRING(5);
                                   -- ISSUEs 160
--- Relationen :
INVERSE
   von_KB_Wirkungsbereich        : SET [0:?] OF KB_Wirkungsbereich
                                             FOR ist_astbezogener_WB;
END_ENTITY;

ENTITY Angaben_zum_Knotenpunkt
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Netzknotenangabe_1            : INTEGER;
   Netzknotenangabe_2            : INTEGER;
   Netzknotenangabe_3            : INTEGER;
--- Relationen :
INVERSE
   von_KB_Wirkungsbereich        : SET [0:?] OF KB_Wirkungsbereich
                                             FOR hat_Angaben_zum_Knotenpunkt;
END_ENTITY;

ENTITY Richtungswechselbetrieb
SUBTYPE OF (dyn_verkehrsreg_Beschilderung);
--- Attribute :
--- Relationen :
   hat_Betriebsform              : SET [1:?] OF Betriebsform; (* D *)
   hat_Anzeigezustaende          : SET [1:?] OF RW_Anzeigezustaende;
   hat_RW_Wirkungsbereich        : SET [1:?] OF RW_Wirkungsbereich; (* D *)
END_ENTITY;

ENTITY Betriebsform
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Betriebsform                  : STRING(30);
--- Relationen :
INVERSE
   von_Richtungswechselbetrieb   : SET [0:?] OF Richtungswechselbetrieb
                                             FOR hat_Betriebsform;
END_ENTITY;

ENTITY RW_Anzeigezustaende
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Anzeigezustand                : STRING(99);
--- Relationen :
INVERSE
   von_Richtungswechselbetrieb   : SET [0:?] OF Richtungswechselbetrieb
                                             FOR hat_Anzeigezustaende;
END_ENTITY;

ENTITY RW_Wirkungsbereich
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Bereich                       : OPTIONAL STRING(30);
--- Relationen :
   beginnt_bei_Strassenpunkt     : OPTIONAL SET [1:?] OF Wirkungsbereich_SP;
   endet_bei_Strassenpunkt       : OPTIONAL SET [1:?] OF Wirkungsbereich_SP;
INVERSE
   von_Richtungswechselbetrieb   : SET [0:?] OF Richtungswechselbetrieb
                                             FOR hat_RW_Wirkungsbereich;
END_ENTITY;

ENTITY Anlagenausstattung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Art_der_Stromversorgung   : SET [1:?] OF Art_der_Stromversorgung;
   hat_Steuerung                 : SET [1:?] OF Steuerung;
   hat_Ueberwachung_der_Anlage   : SET [1:?] OF Ueberwachung_der_Anlage;
                                   (* D *)
   hat_Datenuebertragungssystem  : OPTIONAL SET [1:?] OF
                                                Datenuebertragungssystem;
   hat_Unterzentrale             : OPTIONAL SET [1:?] OF Unterzentrale; (* D *)
   hat_Verkehrsrechnerzentrale   : OPTIONAL SET [1:?] OF
                                                Verkehrsrechnerzentrale;
   hat_Anzeigesystem             : Anzeigesystem;
   hat_Datenerfassungseinrichtgen: SET [1:?] OF Datenerfassungseinrichtungen;
INVERSE
   von_dynam_verkehrsreg_Beschild: SET [0:?] OF dyn_verkehrsreg_Beschilderung
                                             FOR hat_Anlagenausstattung;
END_ENTITY;

ENTITY Art_der_Stromversorgung
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Art                           : Tab_Art_der_Stromversorgung;
--- Relationen :
INVERSE
   von_Anlagenausstattung        : SET [0:?] OF Anlagenausstattung
                                             FOR hat_Art_der_Stromversorgung;
END_ENTITY;

ENTITY Tab_Art_der_Stromversorgung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tab_Art_der_Stromversorgung VALUES (0,'keine Angaben')
INSERT INTO Tab_Art_der_Stromversorgung VALUES (1,'Zähleranschlußsäulen (lokale Versorgung)')
INSERT INTO Tab_Art_der_Stromversorgung VALUES (2,'Solarenergie')
INSERT INTO Tab_Art_der_Stromversorgung VALUES (3,'Längsverkabelung (zentrale Versorgung)')
INSERT INTO Tab_Art_der_Stromversorgung VALUES (4,'Kombination aus 1 und 2')
INSERT INTO Tab_Art_der_Stromversorgung VALUES (5,'sonstige Kombination')

   END_SQL
*)

ENTITY Steuerung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   automatische_Steuerung        : OPTIONAL SET [1:?] OF BOOLEAN;  -- ISSUE 171
--- Relationen :
   hat_manuelle_Steuerung        : OPTIONAL SET [1:?] OF manuelle_Steuerung;
INVERSE
   von_Anlagenausstattung        : SET [0:?] OF Anlagenausstattung
                                             FOR hat_Steuerung;
END_ENTITY;

ENTITY manuelle_Steuerung
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Steuerung                     : Tab_Steuerung;
   Bedienung                     : OPTIONAL STRING(50);
--- Relationen :
INVERSE
   von_Steuerung                 : SET [0:?] OF Steuerung
                                             FOR hat_manuelle_Steuerung;
END_ENTITY;

ENTITY Tab_Steuerung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tab_Steuerung VALUES (0,'kein manueller Eingriff möglich')
INSERT INTO Tab_Steuerung VALUES (1,'manueller Eingriff über UZ möglich')
INSERT INTO Tab_Steuerung VALUES (2,'nur manuelle Steuerung')
INSERT INTO Tab_Steuerung VALUES (3,'manueller Eingriff vor Ort und über Ferneingriff möglich')

   END_SQL
*)

ENTITY Datenuebertragungssystem
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Datenuebertragung_SST_UZ      : Datenuebertragung_SST_UZ;
   Datenuebertragung_UZ_VRZ      : Datenuebertragung_UZ_VRZ;
--- Relationen :
INVERSE
   von_Anlagenausstattung        : SET [0:?] OF Anlagenausstattung
                                             FOR hat_Datenuebertragungssystem;
END_ENTITY;

ENTITY Datenuebertragung_SST_UZ;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Datenuebertragung_SST_UZ VALUES (0,'keine UZ vorhanden')
INSERT INTO Datenuebertragung_SST_UZ VALUES (1,'AUSA-Netz')
INSERT INTO Datenuebertragung_SST_UZ VALUES (2,'Längsverkabelung')
INSERT INTO Datenuebertragung_SST_UZ VALUES (3,'Funk')
INSERT INTO Datenuebertragung_SST_UZ VALUES (4,'lokale Steuerung vor Ort')

   END_SQL
*)

ENTITY Datenuebertragung_UZ_VRZ;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Datenuebertragung_UZ_VRZ VALUES (0,'kein Anschluß vorhanden')
INSERT INTO Datenuebertragung_UZ_VRZ VALUES (1,'AUSA-Netz')
INSERT INTO Datenuebertragung_UZ_VRZ VALUES (2,'sonst')

   END_SQL
*)

ENTITY Unterzentrale
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Existenz                      : Existenz_Unterzentrale;
   Lage                          : OPTIONAL SET [1:?] OF STRING(99);
--- Relationen :
INVERSE
   von_Anlagenausstattung        : SET [0:?] OF Anlagenausstattung
                                             FOR hat_Unterzentrale;
END_ENTITY;

ENTITY Existenz_Unterzentrale;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Existenz_Unterzentrale VALUES (0,'Anlage ohne Unterzentrale')
INSERT INTO Existenz_Unterzentrale VALUES (1,'Anlage mit einer Unterzentrale')
INSERT INTO Existenz_Unterzentrale VALUES (2,'Anlage wird 2 oder mehr Unterzentralen zugeordnet')

   END_SQL
*)

ENTITY Verkehrsrechnerzentrale
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Existenz                      : Exist_Verkehrsrechnerzentrale;
   Lage                          : OPTIONAL SET [1:?] OF STRING(30);
--- Relationen :
INVERSE
   von_Anlagenausstattung        : SET [0:?] OF Anlagenausstattung
                                             FOR hat_Verkehrsrechnerzentrale;
END_ENTITY;

ENTITY Exist_Verkehrsrechnerzentrale;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Exist_Verkehrsrechnerzentrale VALUES (0,'Anlage ohne Anschluß an eine Verkehrsrechnerzentrale')
INSERT INTO Exist_Verkehrsrechnerzentrale VALUES (1,'Anlage mit Anschluß an eine Verkehrsrechnerzentrale')
INSERT INTO Exist_Verkehrsrechnerzentrale VALUES (2,'Anlage mit Anschluß an 2 oder mehr Verkehrsrechnerzentralen')

   END_SQL
*)

ENTITY Ueberwachung_der_Anlage
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Art_der_Ueberwachung          : STRING(99);
--- Relationen :
INVERSE
   von_Anlagenausstattung        : SET [0:?] OF Anlagenausstattung
                                             FOR hat_Ueberwachung_der_Anlage;
END_ENTITY;

ENTITY Anzeigesystem
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Gueltigkeitsbereich       : SET [1:?] OF Gueltigkeitsbereich;
   hat_Wechselverkehrszeichen    : SET [1:?] OF Wechselverkehrszeichen;
   hat_Aufstellvorrichtung       : SET [1:?] OF Aufstellvorrichtung;
   hat_Anzahl_der_Anzeigequerschn: SET [1:?] OF Anzahl_der_Anzeigequerschnitte;
INVERSE
   von_Anlagenausstattung        : SET [0:?] OF Anlagenausstattung
                                             FOR hat_Anzeigesystem;
END_ENTITY;

ENTITY Wechselverkehrszeichen
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Bauart_des_Zeichens           : SET [1:?] OF Bauart_des_Zeichens;
   Anzahl                        : Anzahl;
--- Relationen :
INVERSE
   von_Anzeigesystem             : SET [0:?] OF Anzeigesystem
                                             FOR hat_Wechselverkehrszeichen;
END_ENTITY;

ENTITY Bauart_des_Zeichens;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Bauart_des_Zeichens VALUES (1,'Faseroptik')
INSERT INTO Bauart_des_Zeichens VALUES (2,'Prismen')
INSERT INTO Bauart_des_Zeichens VALUES (3,'Band / Rollo')
INSERT INTO Bauart_des_Zeichens VALUES (4,'Klapptafel')
INSERT INTO Bauart_des_Zeichens VALUES (5,'mit Warnblinker')
INSERT INTO Bauart_des_Zeichens VALUES (6,'Fließtext (frei programmierbare WVZ')
INSERT INTO Bauart_des_Zeichens VALUES (7,'sonst')

   END_SQL
*)

ENTITY Aufstellvorrichtung
SUBTYPE OF (Punktobjekt_hist);
--- Attribute :
   Vorrichtung                   : BOOLEAN;
--- Relationen :
   hat_Art_der_Aufstellung       : SET [1:?] OF Art_der_Aufstellung;
INVERSE
   von_Anzeigesystem             : SET [0:?] OF Anzeigesystem
                                             FOR hat_Aufstellvorrichtung;
END_ENTITY;

ENTITY Art_der_Aufstellung
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Art                           : Tab_Art_der_Aufstellung;
--- Relationen :
INVERSE
   von_Aufstellvorrichtung       : SET [0:?] OF Aufstellvorrichtung
                                             FOR hat_Art_der_Aufstellung;
END_ENTITY;

ENTITY Tab_Art_der_Aufstellung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tab_Art_der_Aufstellung VALUES (0,'keine Angabe')
INSERT INTO Tab_Art_der_Aufstellung VALUES (1,'an VZB')
INSERT INTO Tab_Art_der_Aufstellung VALUES (2,'in Seitenaufstellung')
INSERT INTO Tab_Art_der_Aufstellung VALUES (3,'an vorh. Bauwerk')
INSERT INTO Tab_Art_der_Aufstellung VALUES (4,'in der Rampe')
INSERT INTO Tab_Art_der_Aufstellung VALUES (5,'im nachgeordneten Netz')
INSERT INTO Tab_Art_der_Aufstellung VALUES (6,'an VZB und in Seitenaufstellung')
INSERT INTO Tab_Art_der_Aufstellung VALUES (7,'an VZB und in der Rampe')
INSERT INTO Tab_Art_der_Aufstellung VALUES (8,'sonstige Kombination')

   END_SQL
*)

ENTITY Anzahl_der_Anzeigequerschnitte
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Anzahl                        : Anzahl_zweistellig;
--- Relationen :
INVERSE
   von_Anzeigesystem             : SET [0:?] OF Anzeigesystem
                                       FOR hat_Anzahl_der_Anzeigequerschn;
WHERE
   Anzahl_sinnvoll               : Anzahl >= 1;
   (* BEDINGUNG Anzahl >= 1 *)
END_ENTITY;

ENTITY Datenerfassungseinrichtungen
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Gueltigkeitsbereich       : SET [1:?] OF Gueltigkeitsbereich;
   hat_Detektionsmethode         : OPTIONAL SET [1:?] OF Detektionsmethode;
   hat_Anordnung_des_Messsystems : SET [1:?] OF Anordnung_des_Messsystems;
   hat_Art_der_erfassten_Daten   : SET [1:?] OF Art_der_erfassten_Daten;
   hat_Anzahl_d_Messquerschnitte : SET [1:?] OF Anzahl_der_Messquerschnitte;
INVERSE
   von_Anlagenausstattung        : SET [0:?] OF Anlagenausstattung
                                       FOR hat_Datenerfassungseinrichtgen;
END_ENTITY;

ENTITY Detektionsmethode
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Methode_VDE                   : SET [1:?] OF Methode_VDE;
   Methode_UDE                   : SET [1:?] OF Methode_UDE;
--- Relationen :
INVERSE
   von_Datenerfassungseinrichtgen: SET [0:?] OF Datenerfassungseinrichtungen
                                             FOR hat_Detektionsmethode;
END_ENTITY;

ENTITY Methode_VDE;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Methode_VDE VALUES (1,'Doppelschleife')
INSERT INTO Methode_VDE VALUES (2,'Einfachschleife')
INSERT INTO Methode_VDE VALUES (3,'Radardetektor')
INSERT INTO Methode_VDE VALUES (4,'Infrarotdetektor')
INSERT INTO Methode_VDE VALUES (5,'Ultraschalldetektor')
INSERT INTO Methode_VDE VALUES (6,'Videokamera')
INSERT INTO Methode_VDE VALUES (7,'Laser')
INSERT INTO Methode_VDE VALUES (8,'sonst.')

   END_SQL
*)

ENTITY Methode_UDE;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Methode_UDE VALUES (0,'keine Umfelddatenerfassung')
INSERT INTO Methode_UDE VALUES (1,'Sichtdetektor')
INSERT INTO Methode_UDE VALUES (2,'Temperaturmesser')
INSERT INTO Methode_UDE VALUES (3,'Helligkeitsmesser')
INSERT INTO Methode_UDE VALUES (4,'Niederschlagsdetektor')
INSERT INTO Methode_UDE VALUES (5,'Windmesser')
INSERT INTO Methode_UDE VALUES (6,'sonst.')

   END_SQL
*)

ENTITY Anordnung_des_Messsystems
SUBTYPE OF (Punktobjekt_stat);
--- Attribute :
--- Relationen :
   hat_Art_der_Anordnung         : SET [1:?] OF Art_der_Anordnung; (* D *)
INVERSE
   von_Datenerfassungseinrichtgen: SET [0:?] OF Datenerfassungseinrichtungen
                                             FOR hat_Anordnung_des_Messsystems;
END_ENTITY;

ENTITY Art_der_Anordnung
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Art                           : Tab_Art_der_Anordnung;
--- Relationen :
INVERSE
   von_Anordnung_des_Messsystems : SET [0:?] OF Anordnung_des_Messsystems
                                             FOR hat_Art_der_Anordnung;
END_ENTITY;

ENTITY Tab_Art_der_Anordnung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tab_Art_der_Anordnung VALUES (0,'keine Angabe')
INSERT INTO Tab_Art_der_Anordnung VALUES (1,'in der Fahrbahn')
INSERT INTO Tab_Art_der_Anordnung VALUES (2,'an einer VZB')
INSERT INTO Tab_Art_der_Anordnung VALUES (3,'an bestehendem Bauwerk')
INSERT INTO Tab_Art_der_Anordnung VALUES (4,'am Straßenrand')
INSERT INTO Tab_Art_der_Anordnung VALUES (5,'Kombination von 1 und 2')
INSERT INTO Tab_Art_der_Anordnung VALUES (6,'Kombination von 1, 2 und 4')
INSERT INTO Tab_Art_der_Anordnung VALUES (7,'Kombination von 1 und 4')
INSERT INTO Tab_Art_der_Anordnung VALUES (8,'sonstige Kombination')

   END_SQL
*)

ENTITY Art_der_erfassten_Daten
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Verkehrsdaten                 : STRING(99);
   Umfelddaten                   : STRING(99);
--- Relationen :
INVERSE
   von_Datenerfassungseinrichtgen: SET [0:?] OF Datenerfassungseinrichtungen
                                             FOR hat_Art_der_erfassten_Daten;
END_ENTITY;

ENTITY Anzahl_der_Messquerschnitte
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Anzahl_d_Messquerschnitte_VDE : Anzahl;
   Anzahl_d_Messquerschnitte_UDE : Anzahl;
--- Relationen :
INVERSE
   von_Datenerfassungseinrichtgen: SET [0:?] OF Datenerfassungseinrichtungen
                                             FOR hat_Anzahl_d_Messquerschnitte;
END_ENTITY;

ENTITY Gueltigkeitsbereich
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Aufstelldatum                 : Datum;
   Hersteller                    : STRING(50);
   Abbaudatum                    : OPTIONAL Datum;
--- Relationen :
INVERSE
   von_Datenerfassungseinrichtgen: SET [0:?] OF Datenerfassungseinrichtungen
                                             FOR hat_Gueltigkeitsbereich;
   von_Anzeigesystem             : SET [0:?] OF Anzeigesystem
                                             FOR hat_Gueltigkeitsbereich;
END_ENTITY;

END_SCHEMA; -- Dynamische_Beschilderung
SCHEMA Statische_Beschilderung;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Formale Versionierung

29.06.2004 - 1.004 (1.009)
Anpassung an ASB-Netzdaten, Stand September 2002
Bezug von Wegweiserinhalt auf Strassenelement_abstrakt

03.09.2003 - 1.003 (1.008)
Korrekturen bzgl. StVO_Zeichennummer gemäß A0023
Korrektur reservierter SQL-Bezeichner gemäß A0027

31.05.2002 - 1.002 (1.007)
Überarbeitung der statischen wegweisenden Beschilderung
gemäß Dokument N0005

24.10.2001 - 1.001 (1.005)
Korrekturen in Schlüsseltabellen

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Punktobjekt_stat,Streckenobjekt_hist,
                              Netzknoten_abstrakt,Strassenelement_abstrakt,TK25_Blattnummer);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Datum,Meter,Kilometer,Millimeter);OKSTRA_Schluesseltabelle,
                                   Datum,Meter,Kilometer,Millimeter);

ENTITY Wegweiser
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Wegweisernummer               : OPTIONAL Wegweisernummer;
   Aufstellungszeitpunkt         : OPTIONAL Datum;
   Wegweisertyp                  : OPTIONAL Wegweisertyp;
   lichttechnische_Bauart        : OPTIONAL lichttechnische_Bauart;
   Sichtrichtung                 : OPTIONAL Sichtrichtung;
   StVO_Zeichen                  : OPTIONAL StVO_Zeichennummer;
   lichte_Hoehe                  : OPTIONAL Meter;
   Grundfarbe                    : OPTIONAL Grundfarbe_Wegweiser;
   Reiter                        : OPTIONAL BOOLEAN;
   Kommentar                     : OPTIONAL STRING;
--- Relationen :
   auf_Verkehrszeichentraeger    : Verkehrszeichentraeger;
   Bild                          : OPTIONAL SET[1:?] OF Wegweiserbild;
   in_komplexem_Wegweiser        : OPTIONAL komplexer_Wegweiser;
   hat_Wegweiserinhalt           : SET[1:?] OF Wegweiserinhalt;
   gehoert_zu_Knoten             : OPTIONAL SET[1:?] OF Netzknoten_abstrakt;
UNIQUE
   Nummer_eindeutig              : Wegweisernummer;
END_ENTITY;

ENTITY komplexer_Wegweiser
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
INVERSE
   hat_Wegweiser                 : SET[1:?] OF Wegweiser
                                            FOR in_komplexem_Wegweiser;
END_ENTITY;

TYPE Wegweisernummer = STRING(12);
END_TYPE;

ENTITY Wegweiserbild
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Foto                          : Bilddatei;
   Bildart                       : OPTIONAL Bildart;
--- Relationen :
INVERSE
   von_Wegweiser                 : SET[1:?] OF Wegweiser FOR Bild;
END_ENTITY;

TYPE Bilddatei = STRING;
END_TYPE;

ENTITY Bildart;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Bildart VALUES (1,'Vorderansicht')
INSERT INTO Bildart VALUES (2,'Umgebungsansicht')
INSERT INTO Bildart VALUES (3,'Rückansicht')

   END_SQL
*)

ENTITY Wegweisertyp;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Wegweisertyp VALUES (1,'Ankündigung')
INSERT INTO Wegweisertyp VALUES (2,'Vorwegweiser')
INSERT INTO Wegweisertyp VALUES (3,'Pfeilwegweiser')
INSERT INTO Wegweisertyp VALUES (4,'Wegweiser gemäß Z. 332 StVO')
INSERT INTO Wegweisertyp VALUES (5,'kompakter Tabellenwegweiser')
INSERT INTO Wegweisertyp VALUES (6,'teilaufgelöster Tabellenwegweiser')
INSERT INTO Wegweisertyp VALUES (7,'aufgelöster Tabellenwegweiser')
INSERT INTO Wegweisertyp VALUES (8,'Ortstafel')
INSERT INTO Wegweisertyp VALUES (9,'Ortsendetafel')
INSERT INTO Wegweisertyp VALUES (10,'Entfernungstafel')
INSERT INTO Wegweisertyp VALUES (11,'Planskizze')
INSERT INTO Wegweisertyp VALUES (12,'Gabelungswegweiser')
INSERT INTO Wegweisertyp VALUES (13,'Sortierwegweiser')
INSERT INTO Wegweisertyp VALUES (14,'Ortshinweistafel')
INSERT INTO Wegweisertyp VALUES (15,'Straßennamensschild')
INSERT INTO Wegweisertyp VALUES (16,'sonstiges Hinweisschild, z.B. Hausnummerschild')

   END_SQL
*)

ENTITY lichttechnische_Bauart;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO lichttechnische_Bauart VALUES (1,'Reflexstoffe mit eingebundenen Mikroglaskugeln')
INSERT INTO lichttechnische_Bauart VALUES (2,'Reflexstoffe mit eingekapselten Mikroglaskugeln')
INSERT INTO lichttechnische_Bauart VALUES (3,'Reflexstoffe auf der Basis von Mikroprismen')
INSERT INTO lichttechnische_Bauart VALUES (4,'von außen oder von innen beleuchtet')

   END_SQL
*)

ENTITY Sichtrichtung;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Sichtrichtung VALUES ('R','in Stationierungsrichtung')
INSERT INTO Sichtrichtung VALUES ('G','gegen Stationierungsrichtung')
INSERT INTO Sichtrichtung VALUES ('B','in beide Richtungen')

   END_SQL
*)

ENTITY StVO_Zeichennummer;    -- incl. Zusatzzeichen aus §39, Anhang 2, StVO
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(9) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(9);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO StVO_Zeichennummer VALUES ('310','Ortstafel')
INSERT INTO StVO_Zeichennummer VALUES ('311','Ortsendetafel')
INSERT INTO StVO_Zeichennummer VALUES ('332','Ausfahrt von der Autobahn')
INSERT INTO StVO_Zeichennummer VALUES ('333','Ausfahrt von der Autobahn')
INSERT INTO StVO_Zeichennummer VALUES ('385','Ortshinweistafel')
INSERT INTO StVO_Zeichennummer VALUES ('415','Wegweiser auf Bundesstraßen')
INSERT INTO StVO_Zeichennummer VALUES ('418','Wegweiser auf sonstigen Straßen mit größerer Verkehrsbedeutung')
INSERT INTO StVO_Zeichennummer VALUES ('419','Wegweiser auf sonstigen Straßen mit geringerer Verkehrsbedeutung')
INSERT INTO StVO_Zeichennummer VALUES ('430','Wegweiser zur Autobahn')
INSERT INTO StVO_Zeichennummer VALUES ('432','Wegweiser zu innerörtlichen Zielen und zu Einrichtungen mit erheblicher Verkehrsbedeutung')
INSERT INTO StVO_Zeichennummer VALUES ('434','Wegweisertafel')
INSERT INTO StVO_Zeichennummer VALUES ('435','Wegweiser innerorts')
INSERT INTO StVO_Zeichennummer VALUES ('436','Wegweiser innerorts')
INSERT INTO StVO_Zeichennummer VALUES ('437','Straßennamensschild')
INSERT INTO StVO_Zeichennummer VALUES ('438','Vorwegweiser')
INSERT INTO StVO_Zeichennummer VALUES ('439','Vorwegweiser (frühzeitige Einordnung)')
INSERT INTO StVO_Zeichennummer VALUES ('440','Vorwegweiser zur Autobahn')
INSERT INTO StVO_Zeichennummer VALUES ('448','Ankündigungstafel auf Autobahnen')
INSERT INTO StVO_Zeichennummer VALUES ('448.1','Autohof')
INSERT INTO StVO_Zeichennummer VALUES ('449','Vorwegweiser auf Autobahnen')
INSERT INTO StVO_Zeichennummer VALUES ('453','Entfernungstafel auf Autobahnen')
INSERT INTO StVO_Zeichennummer VALUES ('458','Planskizze')
INSERT INTO StVO_Zeichennummer VALUES ('999','sonst, z.B. Hausnummerschild')

   END_SQL
*)

ENTITY Grundfarbe_Wegweiser;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Grundfarbe_Wegweiser VALUES (1,'blau')
INSERT INTO Grundfarbe_Wegweiser VALUES (2,'gelb')
INSERT INTO Grundfarbe_Wegweiser VALUES (3,'weiß')
INSERT INTO Grundfarbe_Wegweiser VALUES (4,'braun')
INSERT INTO Grundfarbe_Wegweiser VALUES (5,'grün')
INSERT INTO Grundfarbe_Wegweiser VALUES (6,'mehrfarbig')

   END_SQL
*)

ENTITY Verkehrszeichentraeger
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Breite                        : OPTIONAL Meter;
   Hoehe                         : OPTIONAL Meter;
--- Relationen :
   an_Aufstellvorrichtung        : Aufstellvorrichtung_VZT;
INVERSE
   hat_Wegweiser                 : SET[1:2] OF Wegweiser
                                            FOR auf_Verkehrszeichentraeger;
END_ENTITY;

ENTITY Aufstellvorrichtung_VZT
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Durchmesser                   : OPTIONAL Millimeter;
   Dicke                         : OPTIONAL Millimeter;
   Hoehe                         : OPTIONAL Meter;
   Art_der_Aufstellvorrichtung   : OPTIONAL Art_der_Aufstellvorrichtung;
   Material_Aufstellvorrichtung  : OPTIONAL Material_Aufstellvorrichtung;
--- Relationen :
   hat_Standort                  : Standort;
INVERSE
   von_Verkehrszeichentraeger    : SET[1:?] OF Verkehrszeichentraeger
                                            FOR an_Aufstellvorrichtung;
END_ENTITY;

ENTITY Art_der_Aufstellvorrichtung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_der_Aufstellvorrichtung VALUES (1,'Rohrpfosten')
INSERT INTO Art_der_Aufstellvorrichtung VALUES (2,'Gabelrohrständer')
INSERT INTO Art_der_Aufstellvorrichtung VALUES (3,'Kragarm')
INSERT INTO Art_der_Aufstellvorrichtung VALUES (4,'Verkehrszeichenbrücke')
INSERT INTO Art_der_Aufstellvorrichtung VALUES (5,'Hauswand')
INSERT INTO Art_der_Aufstellvorrichtung VALUES (6,'sonstiges')

   END_SQL
*)

ENTITY Material_Aufstellvorrichtung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Material_Aufstellvorrichtung VALUES (1,'Aluminium')
INSERT INTO Material_Aufstellvorrichtung VALUES (2,'feuerverzinkter Stahl')
INSERT INTO Material_Aufstellvorrichtung VALUES (3,'Beton')

   END_SQL
*)

ENTITY Standort
SUBTYPE OF (Punktobjekt_stat);
--- Attribute :
--- Relationen :
INVERSE
   zu_Aufstellvorrichtung        : SET[0:?] OF Aufstellvorrichtung_VZT
                                            FOR hat_Standort;
END_ENTITY;

ENTITY Wegweiserinhalt
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Inhaltstyp                    : OPTIONAL Inhaltstyp;
   Schriftart                    : OPTIONAL Schriftart;
   Schriftfarbe                  : OPTIONAL Schriftfarbe;
   Schriftgroesse                : OPTIONAL Schriftgroesse;
   Distanz_zum_Entscheidungspunkt: OPTIONAL Meter;
   Entfernung_zum_Ziel           : OPTIONAL Kilometer;
   graphisches_Symbol            : OPTIONAL Symbol_graphisches_Symbolgraphisch;
   Strassennummer                : OPTIONAL STRING;
   Knotennummer                  : OPTIONAL INTEGER;
   StVO_Zeichennummer            : OPTIONAL STRING;
   Grundfarbe                    : OPTIONAL Grundfarbe_Wegweiserinhalt;
   Pfeilart                      : OPTIONAL Pfeilart;       -- siehe auch
   Pfeilgrundform                : OPTIONAL Pfeilgrundform; -- Erlaeuterung
   Pfeilspitze                   : OPTIONAL Pfeilspitze;    -- zum Attribut
   Pfeilschaft                   : OPTIONAL Pfeilschaft;    -- Inhaltstyp
   Kommentar                     : OPTIONAL STRING;
--- Relationen :
   mit_Zielangabe                : OPTIONAL Zielangabe;
   in_komplexem_Wegweiserinhalt  : OPTIONAL komplexer_Wegweiserinhalt;
   von_Strassenelement           : OPTIONAL SET[1:?] OF Strassenelement_abstrakt;
   nach_Strassenelement          : SET[1:?] OF Strassenelement_abstrakt;
INVERSE
   in_Wegweiser                  : Wegweiser FOR hat_Wegweiserinhalt;
END_ENTITY;

ENTITY komplexer_Wegweiserinhalt
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
INVERSE
   hat_Wegweiserinhalte          : SET[1:?] OF Wegweiserinhalt
                                            FOR in_komplexem_Wegweiserinhalt;
END_ENTITY;

ENTITY Inhaltstyp;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Inhaltstyp VALUES (1,'Zielangabe')
INSERT INTO Inhaltstyp VALUES (2,'graphisches Symbol')
INSERT INTO Inhaltstyp VALUES (3,'Nummernzeichen A')
INSERT INTO Inhaltstyp VALUES (4,'Nummernzeichen B')
INSERT INTO Inhaltstyp VALUES (5,'Nummernzeichen E')
INSERT INTO Inhaltstyp VALUES (6,'Nummernzeichen U')
INSERT INTO Inhaltstyp VALUES (7,'Pfeil')
INSERT INTO Inhaltstyp VALUES (8,'StVO-Zeichen')
INSERT INTO Inhaltstyp VALUES (9,'Knotennummer')
INSERT INTO Inhaltstyp VALUES (10,'Entfernungsangabe')

   END_SQL
*)

ENTITY Schriftart;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Schriftart VALUES (1,'Mittelschrift')
INSERT INTO Schriftart VALUES (2,'Engschrift')
INSERT INTO Schriftart VALUES (3,'sonstige')

   END_SQL
*)

ENTITY Schriftfarbe;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Schriftfarbe VALUES (1,'weiß')
INSERT INTO Schriftfarbe VALUES (2,'schwarz')
INSERT INTO Schriftfarbe VALUES (3,'gelb')

   END_SQL
*)

ENTITY Schriftgroesse;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Schriftgroesse VALUES (1,'84 mm')
INSERT INTO Schriftgroesse VALUES (2,'105 mm')
INSERT INTO Schriftgroesse VALUES (3,'126 mm')
INSERT INTO Schriftgroesse VALUES (4,'140 mm')
INSERT INTO Schriftgroesse VALUES (5,'175 mm')
INSERT INTO Schriftgroesse VALUES (6,'210 mm')
INSERT INTO Schriftgroesse VALUES (7,'280 mm')
INSERT INTO Schriftgroesse VALUES (8,'350 mm')
INSERT INTO Schriftgroesse VALUES (9,'420 mm')
INSERT INTO Schriftgroesse VALUES (10,'490 mm')
INSERT INTO Schriftgroesse VALUES (11,'sonstige')

   END_SQL
*)

ENTITY Grundfarbe_Wegweiserinhalt;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Grundfarbe_Wegweiserinhalt VALUES (1,'blau')
INSERT INTO Grundfarbe_Wegweiserinhalt VALUES (2,'gelb')
INSERT INTO Grundfarbe_Wegweiserinhalt VALUES (3,'weiß')
INSERT INTO Grundfarbe_Wegweiserinhalt VALUES (4,'braun')
INSERT INTO Grundfarbe_Wegweiserinhalt VALUES (5,'grün')
INSERT INTO Grundfarbe_Wegweiserinhalt VALUES (6,'mehrfarbig')

   END_SQL
*)

ENTITY Symbol_graphisches_Symbol;graphisch
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (1,'Polizeistation')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (2,'"Erste Hilfe"-Station')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (3,'Informationsstelle')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (4,'Tankstelle')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (5,'Gasthaus')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (6,'Verkaufskiosk')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (7,'Motel, Hotel')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (8,'Notrufsäule')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (9,'Fernsprecher')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (10,'Toiletten')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (11,'Behindertentoiletten')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (12,'Rollstuhlfahrersymbol')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (13,'Flughafen')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (14,'Hafen, Fährhafen, Fähre')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (15,'Autobahnkapelle')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (16,'Personenkraftwagen')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (17,'Lastkraftwagen')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (18,'Kraftomnibus')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (19,'Personenkraftwagen mit Anhänger')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (20,'Lastkraftwagen mit Anhänger')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (21,'Autobahn')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (22,'Autobahnausfahrt')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (23,'Autobahnkreuz oder Autobahndreieck')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (24,'Parkplatz')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (25,'Werkstatt')
INSERT INTO Symbol_graphisches_Symbolgraphisch VALUES (26,'Autohof')

   END_SQL
*)

ENTITY Pfeilart;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Pfeilart VALUES (1,'Langpfeil')
INSERT INTO Pfeilart VALUES (2,'Kurzpfeil')
INSERT INTO Pfeilart VALUES (3,'ISO-Pfeil')

   END_SQL
*)

ENTITY Pfeilgrundform;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Pfeilgrundform VALUES (1,'Geradeauspfeil')
INSERT INTO Pfeilgrundform VALUES (2,'Schrägpfeil links')
INSERT INTO Pfeilgrundform VALUES (3,'Schrägpfeil rechts')
INSERT INTO Pfeilgrundform VALUES (4,'Querpfeil links')
INSERT INTO Pfeilgrundform VALUES (5,'Querpfeil rechts')
INSERT INTO Pfeilgrundform VALUES (6,'gebogener Pfeil links')
INSERT INTO Pfeilgrundform VALUES (7,'gebogener Pfeil rechts')
INSERT INTO Pfeilgrundform VALUES (8,'Wendepfeil')

   END_SQL
*)

ENTITY Pfeilspitze;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Pfeilspitze VALUES (1,'Herzpfeil')
INSERT INTO Pfeilspitze VALUES (2,'ISO-Pfeil')

   END_SQL
*)

ENTITY Pfeilschaft;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Pfeilschaft VALUES (1,'konischer Schaft')
INSERT INTO Pfeilschaft VALUES (2,'gerader Schaft')

   END_SQL
*)

ENTITY Zielangabe
ABSTRACT SUPERTYPE OF (ONEOF(Referenzzielangabe,Synonym_Zielangabe))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Text                          : STRING;
   Zielkategorie                 : OPTIONAL Zielkategorie;
   Kommentar                     : OPTIONAL STRING;
--- Relationen :
INVERSE
   zu_Wegweiserinhalt            : SET[0:?] OF Wegweiserinhalt
                                            FOR mit_Zielangabe;
END_ENTITY;

ENTITY Referenzzielangabe
SUBTYPE OF (Zielangabe);
--- Attribute :
--- Relationen :
INVERSE
   hat_Synonym                   : SET[0:?] OF Synonym_Zielangabe FOR zu_Referenz;
END_ENTITY;

ENTITY Synonym_Zielangabe
SUBTYPE OF (Zielangabe);
--- Attribute :
--- Relationen :
   zu_Referenz                   : Referenzzielangabe;
END_ENTITY;

ENTITY Zielkategorie;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Zielkategorie VALUES (1,'Straße')
INSERT INTO Zielkategorie VALUES (2,'Gemeinde')
INSERT INTO Zielkategorie VALUES (3,'Industrie-/Gewerbegebiete')
INSERT INTO Zielkategorie VALUES (4,'Verkehrsverknüpfungspunkte (Flughafen, Hafen, Fähre, P+R, GVZ)')
INSERT INTO Zielkategorie VALUES (5,'Sport/Freizeit')
INSERT INTO Zielkategorie VALUES (6,'öffentliche Einrichtungen (Krankenhäuser, Universitäten, Verwaltungssitze)')
INSERT INTO Zielkategorie VALUES (7,'private Ziele (Messen, Firmen, Einkaufszentren)')
INSERT INTO Zielkategorie VALUES (8,'Knotenpunkte')
INSERT INTO Zielkategorie VALUES (9,'ausländische Ziele (Gemeinden, Staaten)')
INSERT INTO Zielkategorie VALUES (10,'sonstiges')

   END_SQL
*)

ENTITY stat_verkehrsreg_Beschilderung
SUBTYPE OF (Punktobjekt_stat);
--- Attribute :
   Fahrtrichtung_WB              : OPTIONAL STRING(30);
--- Relationen :
   hat_Standort_Beschilderung    : Standort_Beschilderung;
   hat_Gueltigkeitsbereich_VRB   : SET [1:?] OF Gueltigkeitsbereich_VRB;
END_ENTITY;

ENTITY Standort_Beschilderung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Aufstellart                   : Aufstellart;
   richtungsbezogene_Ausfuehrung : richtungsbezogene_Ausfuehrung;
   technische_Ausfuehrung        : OPTIONAL SET [1:?] OF STRING(99);
--- Relationen :
   hat_Numerierung               : SET [1:?] OF Numerierung;
   hat_Position                  : OPTIONAL Position;
   hat_verkehrsregelnde_Funktion : SET [1:?] OF verkehrsregelnde_Funktion;
   hat_StVO_Zuordnung            : StVO_Zuordnung;
INVERSE
   von_stat_verkehsreg_Beschilder: SET [0:?] OF stat_verkehrsreg_Beschilderung
                                             FOR hat_Standort_Beschilderung;
END_ENTITY;

ENTITY Aufstellart;
   (* AUFZAEHLUNG J *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING(30);
UNIQUE
   Kennung_eindeutig             : Kennung;   
END_ENTITY;

(* SQL :

INSERT INTO Aufstellart VALUES (1,'Gabelständer')
INSERT INTO Aufstellart VALUES (2,'Ausleger rechts')
INSERT INTO Aufstellart VALUES (3,'Ausleger links')
INSERT INTO Aufstellart VALUES (4,'Ausleger seitlich rechts')
INSERT INTO Aufstellart VALUES (5,'Ausleger seitlich links')
INSERT INTO Aufstellart VALUES (6,'Ausleger seitlich hoch')
INSERT INTO Aufstellart VALUES (7,'Schilderbrücke')
INSERT INTO Aufstellart VALUES (8,'Klappschild')

   END_SQL
*)

ENTITY verkehrsregelnde_Funktion
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Funktion                      : Funktion_verkehrsregelnd;
   Paragraph                     : OPTIONAL INTEGER;
--- Relationen :
INVERSE
   von_Standort_Beschilderung    : SET [0:?] OF Standort_Beschilderung
                                       FOR hat_verkehrsregelnde_Funktion;
END_ENTITY;

ENTITY Funktion_verkehrsregelnd;
   (* AUFZAEHLUNG J *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING(40);
UNIQUE
   Kennung_eindeutig             : Kennung;   
END_ENTITY;

(* SQL :

INSERT INTO Funktion_verkehrsregelnd VALUES (1,'Gefahrzeichen')
INSERT INTO Funktion_verkehrsregelnd VALUES (2,'Vorschriftszeichen')
INSERT INTO Funktion_verkehrsregelnd VALUES (3,'Richtzeichen')
INSERT INTO Funktion_verkehrsregelnd VALUES (4,'Zusatzzeichen')
INSERT INTO Funktion_verkehrsregelnd VALUES (5,'Kombinationen aus mehreren Zeichen')

   END_SQL
*)

ENTITY StVO_Zuordnung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   StVO_Zeichen                  : INTEGER;
   Zusatzzeichen_1               : OPTIONAL INTEGER;
   Zusatzzeichen_2               : OPTIONAL INTEGER;
--- Relationen :
INVERSE
   von_Standort_Beschilderung    : SET [0:?] OF Standort_Beschilderung
                                       FOR hat_StVO_Zuordnung;
END_ENTITY;

ENTITY Gueltigkeitsbereich_VRB
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   verkehrsartabhaengiger_GB     : OPTIONAL SET [1:?] OF STRING(50);
   verkehrssituationsabh_GB      : OPTIONAL STRING(50);
--- Relationen :
   ist_raeumlicher_GB            : OPTIONAL SET [1:?] OF
                                         raeumlicher_Gueltigkeitsber; (* D *)
   ist_zeitlicher_GB             : OPTIONAL SET [1:?] OF
                                         zeitlicher_Gueltigkeitsber; (* D *)
INVERSE
   von_stat_verkehrsreg_Beschildg: SET [0:?] OF stat_verkehrsreg_Beschilderung
                                       FOR hat_Gueltigkeitsbereich_VRB;
WHERE
   mindestens_eine_Auspraegung   : EXISTS(verkehrsartabhaengiger_GB) OR
                                   EXISTS(verkehrssituationsabh_GB) OR
                                   EXISTS(ist_raeumlicher_GB) OR
                                   EXISTS(ist_zeitlicher_GB);
   (* BEDINGUNG ( verkehrsartabhaengiger_GB IS NOT NULL ) OR
                ( verkehrssituationsabh_GB IS NOT NULL ) OR
                ( ist_raeumlicher_GB IS NOT NULL ) OR
                ( ist_zeitlicher_GB IS NOT NULL ) *)
END_ENTITY;

ENTITY raeumlicher_Gueltigkeitsber
SUBTYPE OF (Streckenobjekt_hist);  -- ISSUE 160
--- Attribute :
--- Relationen :
INVERSE
   von_Gueltigkeitsbereich_VRB   : SET [0:?] OF Gueltigkeitsbereich_VRB
                                             FOR ist_raeumlicher_GB;
END_ENTITY;

ENTITY zeitlicher_Gueltigkeitsber
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   zeitlicher_Bereich            : STRING(30);  -- ISSUE 153
--- Relationen :
INVERSE
   von_Gueltigkeitsbereich_VRB   : SET [0:?] OF Gueltigkeitsbereich_VRB
                                             FOR ist_zeitlicher_GB;
END_ENTITY;

ENTITY richtungsbezogene_Ausfuehrung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO richtungsbezogene_Ausfuehrung VALUES (1,'richtungsbezogen')
INSERT INTO richtungsbezogene_Ausfuehrung VALUES (2,'spur- bzw. fahrstreifenbezogen')

   END_SQL
*)

ENTITY Numerierung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Plannummer                    : TK25_Blattnummer;
   Standort_Nummer               : OPTIONAL INTEGER;
--- Relationen :
INVERSE
   von_Standort_Beschilderung    : SET [0:?] OF Standort_Beschilderung
                                             FOR hat_Numerierung;
END_ENTITY;

ENTITY Position
SUBTYPE OF (Punktobjekt_stat);
--- Attribute :
--- Relationen :
INVERSE
   von_Standort_Beschilderung    : SET [0:?] OF Standort_Beschilderung
                                             FOR hat_Position;
END_ENTITY;

END_SCHEMA; -- Statische_Beschilderung
SCHEMA Lichtsignalanlage;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Formale Versionierung

29.06.2004 - 1.004 (1.009)
Kürzung von Bezeichnern (SQL)

03.09.2003 - 1.003 (1.008)
Korrektur der historischen Gültigkeitsdaten (SQL)

31.05.2002 - 1.002 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

11.12.2000 - 1.001 (1.002)
Verlegung von oertliche_Zuordnung in das Schema Strassennetz

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (oertliche_Zuordnung);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Datum,Anzahl,Meter);OKSTRA_Schluesseltabelle,
                                   Datum,Anzahl,Meter);

ENTITY Lichtsignalanlage
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Rotlichtueberwachung      : SET [1:?] OF Rotlichtueberwachung; (* D *)
   hat_Angaben_zum_Knotenpunkt   : SET [1:?] OF Angaben_zum_Knotenpunkt_LSA;
                                   (* D *)
   hat_Grundl_u_Inbetriebn_daten : SET [1:?] OF Grundlage_und_Inbetriebn_daten;
   hat_Angaben_zu_Verkehrsdaten  : OPTIONAL SET [1:?] OF
                                                      Angaben_zu_Verkehrsdaten;
   hat_oertliche_Zuordnung       : oertliche_Zuordnung_LS;
   hat_Softwarekomponenten       : SET [1:?] OF Softwarekomponenten;
   hat_Hardwarekomponenten       : SET [1:?] OF Hardwarekomponenten;
   hat_uebergeordnete_Zentrale   : OPTIONAL SET [1:?] OF
                                                      uebergeordnete_Zentrale;
END_ENTITY;

ENTITY Rotlichtueberwachung
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Ueberwachung                  : BOOLEAN;  -- ISSUE 171
   Fahrtrichtung                 : OPTIONAL STRING(50);
--- Relationen :
INVERSE
   von_Lichtsignalanlage         : SET [0:?] OF Lichtsignalanlage
                                             FOR hat_Rotlichtueberwachung;
END_ENTITY;

ENTITY Angaben_zum_Knotenpunkt_LSA
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Name                          : STRING(50);
   Zahl_der_Knotenarme           : OPTIONAL Anzahl;
   Hauptrichtung                 : STRING(50);
   Markierungspfeile             : OPTIONAL SET [1:?] OF Markierungspfeile;
--- Relationen :
INVERSE
   von_Lichtsignalanlage         : SET [0:?] OF Lichtsignalanlage
                                             FOR hat_Angaben_zum_Knotenpunkt;
END_ENTITY;

ENTITY Markierungspfeile;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Markierungspfeile VALUES (1,'Rechtabbiegepfeil')
INSERT INTO Markierungspfeile VALUES (2,'Linksabbiegepfeil')
INSERT INTO Markierungspfeile VALUES (3,'Geradeauspfeil')
INSERT INTO Markierungspfeile VALUES (4,'Geradeaus und Links')
INSERT INTO Markierungspfeile VALUES (5,'Geradeaus und Rechts')

   END_SQL
*)

ENTITY Grundlage_und_Inbetriebn_daten
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Einsatzzeiten                 : Einsatzzeiten;
   Nummer                        : INTEGER;
   Nummer_Nachbar_LSA            : OPTIONAL SET [1:4] OF INTEGER;
   Baulasttraeger                : STRING(50);  -- ISSUE 160
   Stoerungsstelle               : OPTIONAL STRING(50);
   Datum_Installation            : Datum;
   Wartungszyklus                : STRING(99);
   Datum_Zwischenzeitmatrix      : OPTIONAL Datum;
   Datum_VZ_Plan                 : OPTIONAL Datum;
   Datum_Signalprogramme         : OPTIONAL Datum;
--- Relationen :
INVERSE
   von_Lichtsignalanlage         : SET [0:?] OF Lichtsignalanlage
                                             FOR hat_Grundl_u_Inbetriebn_daten;
END_ENTITY;

ENTITY Einsatzzeiten;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Einsatzzeiten VALUES (1,'24-Stunden-Anzeige')
INSERT INTO Einsatzzeiten VALUES (2,'Nachtabschaltung')

   END_SQL
*)

ENTITY Angaben_zu_Verkehrsdaten
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Datum_VZ                      : Datum;
   Verkehrsstroeme               : OPTIONAL SET [1:?] OF STRING(99);
   OePNV_Frequenzen              : OPTIONAL STRING(99);
   Fussgaengerzaehlung           : OPTIONAL STRING(99);
--- Relationen :
INVERSE
   von_Lichtsignalanlage         : SET [0:?] OF Lichtsignalanlage
                                             FOR hat_Angaben_zu_Verkehrsdaten;
END_ENTITY;

ENTITY Softwarekomponenten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Hersteller                    : OPTIONAL STRING(50);
--- Relationen :
   hat_Signalprogrammparameter   : SET [1:?] OF Signalprogrammparameter;
   hat_hinterlegte_Programme     : SET [1:?] OF hinterlegte_Programme;
INVERSE
   von_Lichtsignalanlage         : SET [0:?] OF Lichtsignalanlage
                                             FOR hat_Softwarekomponenten;
END_ENTITY;

ENTITY Signalprogrammparameter
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Zwischenzeit                  : STRING(99);
   maximale_Freigabezeit         : OPTIONAL STRING(99);
   Umlaufzeit                    : STRING(99);
   maximale_Wartezeit            : OPTIONAL STRING(99);
   Zeitluecke_Belegung           : OPTIONAL STRING(99);
   Berechnungsverfahren          : OPTIONAL STRING(99);
   Mindestfreigabezeit           : OPTIONAL STRING(99);
   Versatzzeit                   : OPTIONAL STRING(99);
   Radfahrerberuecksichtigung    : OPTIONAL BOOLEAN;  -- ISSUE 171
   OePNV_Beruecksichtigung       : OPTIONAL BOOLEAN;  -- ISSUE 171
--- Relationen :
INVERSE
   von_Softwarekomponenten       : SET [0:?] OF Softwarekomponenten
                                             FOR hat_Signalprogrammparameter;
END_ENTITY;

ENTITY hinterlegte_Programme
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Steuerungsverfahren           : OPTIONAL STRING(50);
   Anzahl                        : Anzahl;
   Auswahlverfahren              : Auswahlverfahren;
   Art_der_Programme             : OPTIONAL STRING(50);
   OePNV_Berechtigung            : OePNV_Berechtigung;
   Darstellung                   : OPTIONAL STRING(50);
--- Relationen :
INVERSE
   von_Softwarekomponenten       : SET [0:?] OF Softwarekomponenten
                                             FOR hat_hinterlegte_Programme;
END_ENTITY;

ENTITY Auswahlverfahren;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Auswahlverfahren VALUES (1,'zeitplanabhängiges Verfahren')
INSERT INTO Auswahlverfahren VALUES (2,'verkehrsabhängiges Verfahren')

   END_SQL
*)

ENTITY OePNV_Berechtigung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO OePNV_Berechtigung VALUES (0,'ohne')
INSERT INTO OePNV_Berechtigung VALUES (1,'bedingt')
INSERT INTO OePNV_Berechtigung VALUES (2,'weitgehend')

   END_SQL
*)

ENTITY Hardwarekomponenten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Hersteller                    : STRING(50);
   Signalgruppen                 : OPTIONAL STRING(99);
--- Relationen :
   hat_akust_o_taktile_Signalgeb : OPTIONAL SET [1:?] OF
                                            akust_oder_taktile_Signalgeber;
   hat_Angaben_zum_Steuergeraet  : SET [1:?] OF Angaben_zum_Steuergeraet;
   hat_Angaben_zur_Verkabelung   : SET [1:?] OF Angaben_zur_Verkabelung;
   hat_Angab_z_Aufstellvorrichtg : SET [1:?] OF Angaben_z_Aufstellvorrichtung;
   hat_optische_Signalgeber      : SET [1:?] OF optische_Signalgeber;
   hat_Erfassungseinrichtungen_IV: OPTIONAL SET [1:?] OF
                                            Erfassungseinrichtungen_IV;
   hat_Erfassungseinrichtungn_OeV: OPTIONAL SET [1:?] OF
                                            Erfassungseinrichtungen_OeV;
INVERSE
   von_Lichtsignalanlage         : SET [0:?] OF Lichtsignalanlage
                                             FOR hat_Hardwarekomponenten;
END_ENTITY;

ENTITY akust_oder_taktile_Signalgeber
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Anzahl_1                      : Anzahl;
   Anzahl_2                      : Anzahl;
   Position_1                    : Position_SG;
   Position_2                    : Position_SG;
--- Relationen :
INVERSE
   von_Hardwarekomponenten       : SET [0:?] OF Hardwarekomponenten
                                             FOR hat_akust_o_taktile_Signalgeb;
END_ENTITY;

ENTITY Position_SG;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Position_SG VALUES (1,'seitlich')
INSERT INTO Position_SG VALUES (2,'überkopf')
INSERT INTO Position_SG VALUES (3,'beide Varianten')

   END_SQL
*)

ENTITY Angaben_zum_Steuergeraet
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Geraetebezeichnung            : STRING(50);
   max_Programmzahl              : Anzahl;
   max_SG_Anzahl_Kfz             : Anzahl;
   max_SG_Anzahl_Fussgaenger     : Anzahl;
   max_SG_Anzahl_OeV             : Anzahl;
   max_SG_Anzahl_Zusatzsignalgeb : Anzahl;
   max_Anzahl_Kanaele            : OPTIONAL Anzahl;
   Programmierbarkeit            : BOOLEAN;  -- ISSUE 171
   Spannungsversorgung           : OPTIONAL STRING(50);
   Anordnung                     : OPTIONAL STRING(50);
   Verkehrszaehlspeicher         : OPTIONAL STRING(50);
   Schliesssystem                : OPTIONAL STRING(50);
   Handbedienteil                : OPTIONAL BOOLEAN;  -- ISSUE 171
   BUeSTRA                       : BOOLEAN;  -- ISSUE 171
   Koordinierung                 : OPTIONAL Koordinierung;
   Telefonbuchse                 : OPTIONAL BOOLEAN;  -- ISSUE 171
   Messschreiberanschluss        : OPTIONAL BOOLEAN;  -- ISSUE 171
   Heizung_Luefter               : OPTIONAL BOOLEAN;  -- ISSUE 171
--- Relationen :
INVERSE
   von_Hardwarekomponenten       : SET [0:?] OF Hardwarekomponenten
                                             FOR hat_Angaben_zum_Steuergeraet;
END_ENTITY;

ENTITY Koordinierung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Koordinierung VALUES (0,'Funkuhr')
INSERT INTO Koordinierung VALUES (1,'Koordinierungskabel')

   END_SQL
*)

ENTITY Angaben_zur_Verkabelung
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Rohrbelegung                  : BOOLEAN;
   Verbindung_NK                 : Verbindung_NK;
--- Relationen :
INVERSE
   von_Hardwarekomponenten       : SET [0:?] OF Hardwarekomponenten
                                             FOR hat_Angaben_zur_Verkabelung;
END_ENTITY;

ENTITY Verbindung_NK;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Verbindung_NK VALUES (0,'keine Verbindung zum Nachbarknoten')
INSERT INTO Verbindung_NK VALUES (1,'Verbindung zum Nachbarknoten vorhanden')
INSERT INTO Verbindung_NK VALUES (2,'Verbindung zu mehreren Nachbarknoten vorhanden')

   END_SQL
*)

ENTITY Angaben_z_Aufstellvorrichtung
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Art                           : STRING(50);
   Anzahl                        : Anzahl;
   Ausleger_Laenge               : OPTIONAL Meter;
   Ausleger_Anzahl               : OPTIONAL Anzahl;
   Gruendung                     : OPTIONAL STRING(50);
--- Relationen :
INVERSE
   von_Hardwarekomponenten       : SET [0:?] OF Hardwarekomponenten
                                             FOR hat_Angab_z_Aufstellvorrichtg;
END_ENTITY;

ENTITY optische_Signalgeber
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Anzahl                        : Anzahl;
   Durchmesser                   : OPTIONAL STRING(50);
   Blendensymbol                 : STRING(99);
   Position                      : Position_SG;
--- Relationen :
INVERSE
   von_Hardwarekomponenten       : SET [0:?] OF Hardwarekomponenten
                                             FOR hat_optische_Signalgeber;
END_ENTITY;

ENTITY Erfassungseinrichtungen_IV
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Art_der_Erfassung             : STRING(99);
   Anzahl_1                      : Anzahl;
   Anzahl_2                      : OPTIONAL Anzahl;
   zu_erkennende_Fz              : OPTIONAL STRING(50);
   Funktion                      : OPTIONAL STRING(99);
   Gestaltung                    : OPTIONAL STRING(99);
--- Relationen :
INVERSE
   von_Hardwarekomponenten       : SET [0:?] OF Hardwarekomponenten
                                       FOR hat_Erfassungseinrichtungen_IV;
END_ENTITY;

ENTITY Erfassungseinrichtungen_OeV
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Art_der_Erfassung             : STRING(50);
   Anzahl                        : Anzahl;
   Position                      : OPTIONAL STRING(50);
   Funktion                      : STRING(50);
   Verbindung                    : BOOLEAN;  -- ISSUE 171
--- Relationen :
INVERSE
   von_Hardwarekomponenten       : SET [0:?] OF Hardwarekomponenten
                                       FOR hat_Erfassungseinrichtungn_OeV;
END_ENTITY;

ENTITY uebergeordnete_Zentrale
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Lage                          : STRING(50);
   Schnittstellendef_bekannt     : BOOLEAN;  -- ISSUE 171
   Typ                           : Typ_UeZ;
   Eingriffsmoeglichkeit         : Eingriffsmoeglichkeit;
   Hersteller_des_Steuerrechners : OPTIONAL STRING(50);
   Typ_des_Steuerrechners        : OPTIONAL STRING(50);
--- Relationen :
INVERSE
   von_Lichtsignalanlage         : SET [0:?] OF Lichtsignalanlage
                                             FOR hat_uebergeordnete_Zentrale;
END_ENTITY;

ENTITY Typ_UeZ;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Typ_UeZ VALUES (1,'RBL')
INSERT INTO Typ_UeZ VALUES (2,'Verkehrsrechner')
INSERT INTO Typ_UeZ VALUES (3,'gemeinsame Leitzentrale IV/ÖV')
INSERT INTO Typ_UeZ VALUES (4,'getrennte Leitzentralen IV/ÖV')

   END_SQL
*)

ENTITY Eingriffsmoeglichkeit;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Eingriffsmoeglichkeit VALUES (0,'nur Visualisierung')
INSERT INTO Eingriffsmoeglichkeit VALUES (1,'mit Steuereingriff')

   END_SQL
*)

ENTITY oertliche_Zuordnung_LS
SUBTYPE OF (oertliche_Zuordnung);
--- Attribute :
--- Relationen :
INVERSE
   von_Lichtsignalanlage         : SET [0:?] OF Lichtsignalanlage
                                       FOR hat_oertliche_Zuordnung;
END_ENTITY;


END_SCHEMA; -- Lichtsignalanlage
SCHEMA Geometrieschema;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Schema Topografie erstellt

29.06.2004 - 1.007 (1.009)
Anpassung an ASB-Netzdaten, Stand September 2002

03.09.2003 - 1.006 (1.008)
Präzisierung des Zusammenhangs von Linien
Ergänzung von Flächengeometrie für Erwerbsfläche
und Nutzungsart_Teilflaeche
Anbindung des Schemas Ökologie

31.05.2002 - 1.005 (1.007)
Erweiterung Linienelement_3D, Linienelement_Spline
gemäß Dokument N0030

24.10.2001 - 1.004 (1.005)
Korrekturen in Schlüsseltabellen

12.09.2001 - 1.003 (1.004)
Überarbeitung in Folge des Änderungsantrags A0006
Beziehung zum Schema Unfall ergänzt

18.12.2000 - 1.002 (1.002)
Korrektur: Ergänzung der Informationen "geschlossen"
und "tangentialer Anschluss" im Linienelement_Spline

29.10.2000 - 1.001 (1.001)
Anbindung an Schema allgemeine_Geometrieobjekte

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Abschnitt_oder_Ast,Netzknoten,Nullpunkt,
                Strassenelement,TK25Blatt,Verbindungspunkt);

REFERENCE FROM Administration (Verwaltungsbezirk);

REFERENCE FROM Verkehr (Fahrstreifen_Nummer);

REFERENCE FROM Bauliche_Strasseneigenschaften (Fahrbahnlaengsneigung,
                                 Fahrbahnquerneigung,Querschnittstreifen,
                                 Schicht,Streifenbegrenzung);

REFERENCE FROM Bauwerke (Teilbauwerk);

REFERENCE FROM Entwurf (Abstand_Achse_Linie,Achshauptpunkt,Hoehe_Linie);

REFERENCE FROM Unfall (Angaben_zum_Unfallort);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Winkel,geometrische_Auspraegung_PunktOKSTRA_Schluesseltabelle,
                Meter,                   Winkel,geometrische_Auspraegung_Linie,geometrische_Auspraegung_FlaechePunkt,
                                   Meter,geometrische_Auspraegung_Linie,
                                   geometrische_Auspraegung_Flaeche,
                Sensorstandpunkt,Sensorstandlinie);

REFERENCE FROM allgemeine_Geometrieobjekte (allgemeines_Linienobjekt,Symbol,
                                            allgemeines_Flaechenobjekt,
           allgemeines_Flaechenobjekt,                                 Beschriftung,DGM_Punkt);

REFERENCE FROM Grunderwerb (Erwerbsflaeche,Nutzungsartflaeche_Basis);

REFERENCE FROM Vermessungspunkt (Punktort);

REFERENCE FROM Kataster (ALKIS_Objekt_Punkt,ALKIS_Objekt_Linie,ALKIS_Objekt_Flaeche,
                         besondere_Flurstuecksgrenze,Flurstueck);

REFERENCE FROM Oekologie (Kompensationsteilflaeche);

REFERENCE FROM Topografie (Boeschung,Boeschungskantenabschnitt,Boeschungslinie,
                           Gebaeude,Zaun,Oeffnung,Mauerabschnitt,Gebuesch,
                           Heckenabschnitt);

-- europaeische Vornorm prENV 12762:
REFERENCE FROM direct_positioning_schema (direct_position);

ENTITY Punktobjekt_Modell
ABSTRACT SUPERTYPE OF (ONEOF(Netzknoten,Nullpunkt,Verbindungspunkt,
                             DGM_Punkt,Symbol,Beschriftung,
                             ALKIS_Objekt_Punkt,Achshauptpunkt,
                             Angaben_zum_Unfallort,Punktort,Teilbauwerk,
                             geometrische_Auspraegung_Punkt,Sensorstandpunkt,
                             Oeffnung))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   dargestellt_von_Knoten        : OPTIONAL SET [1:?] OF Knoten;
   dargestellt_von_Punkt         : OPTIONAL SET [1:?] OF Punkt;
INVERSE
   zu_Beschriftung               : SET[0:?] OF Beschriftung
                                      FOR zu_Punktobjekt_Modell;
END_ENTITY;

ENTITY Linienobjekt_Modell
ABSTRACT SUPERTYPE OF (ONEOF(Abschnitt_oder_Ast,Strassenelement,
                             Streifenbegrenzung,allgemeines_Linienobjekt,
                             ALKIS_Objekt_Linie,Abstand_Achse_Linie,
                             besondere_Flurstuecksgrenze,Hoehe_Linie,
                             geometrische_Auspraegung_Linie,Sensorstandlinie,
                             Boeschungskantenabschnitt,Boeschungslinie,
                             Gebaeude,Zaun,Mauerabschnitt,Heckenabschnitt))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   dargestellt_von_Kante         : OPTIONAL SET [1:?] OF Kante;
   dargestellt_von_Linie         : OPTIONAL SET [1:?] OF Linie;
END_ENTITY;

ENTITY Flaechenobjekt_Modell
ABSTRACT SUPERTYPE OF (ONEOF(Fahrbahnlaengsneigung,Fahrbahnquerneigung,
                             Querschnittstreifen,Fahrstreifen_Nummer,
                             Verwaltungsbezirk,allgemeines_Flaechenobjekt,
                             Nutzungsartflaeche_Basis,ALKIS_Objekt_Flaeche,
                             Flurstueck,Kompensationsteilflaeche,Erwerbsflaeche,
                             geometrische_Auspraegung_Flaeche,Boeschung,
                             Gebaeude,Gebuesch))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   dargestellt_von_Masche        : OPTIONAL SET [1:?] OF Masche;
   dargestellt_von_Flaeche       : OPTIONAL SET [1:?] OF Flaeche;
END_ENTITY;

ENTITY Volumenobjekt_Modell
ABSTRACT SUPERTYPE OF (Schicht)
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   dargestellt_von_Koerper       : OPTIONAL SET [1:?] OF Koerper;
   dargestellt_von_Volumen       : OPTIONAL SET [1:?] OF Volumen;
END_ENTITY;

ENTITY Raumbezugsart
ABSTRACT SUPERTYPE OF (ONEOF(Knoten,Kante,Masche,Koerper,
                             Punkt,Linie,Flaeche,Volumen))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Knoten
ABSTRACT SUPERTYPE OF (ONEOF(isolierter_Knoten,nicht_isolierter_Knoten))
SUBTYPE OF (Raumbezugsart);
--- Attribute :
--- Relationen :
   hat_Punkt                     : OPTIONAL SET [1:?] OF Punkt;
INVERSE
   stellt_Punktobjekt_dar        : SET [0:?] OF Punktobjekt_Modell
                                             FOR dargestellt_von_Knoten;
END_ENTITY;

ENTITY isolierter_Knoten
SUBTYPE OF (Knoten);
--- Attribute :
--- Relationen :
   liegt_in_Masche               : OPTIONAL Masche;
END_ENTITY;

ENTITY nicht_isolierter_Knoten
SUBTYPE OF (Knoten);
--- Attribute :
--- Relationen :
INVERSE
   Beginn_von                    : SET [0:?] OF Kante FOR beginnt_bei_Knoten;
   Ende_von                      : SET [0:?] OF Kante FOR endet_bei_Knoten;
END_ENTITY;

ENTITY Kante
SUBTYPE OF (Raumbezugsart);
--- Attribute :
--- Relationen :
   hat_Linie                     : OPTIONAL SET [1:?] OF Linie;
   beginnt_bei_Knoten            : OPTIONAL nicht_isolierter_Knoten;
   endet_bei_Knoten              : OPTIONAL nicht_isolierter_Knoten;
INVERSE
   stellt_Linienobjekt_dar       : SET [0:?] OF Linienobjekt_Modell
                                             FOR dargestellt_von_Kante;
   begrenzt_Masche               : SET [0:?] OF Masche FOR hat_Kante;
END_ENTITY;

ENTITY Masche
SUBTYPE OF (Raumbezugsart);
--- Attribute :
--- Relationen :
   hat_Flaeche                   : OPTIONAL SET [1:?] OF Flaeche;
   hat_Kante                     : OPTIONAL SET [1:?] OF Kante;
INVERSE
   stellt_Flaechenobjekt_dar     : SET [0:?] OF Flaechenobjekt_Modell
                                             FOR dargestellt_von_Masche;
   enthaelt_Knoten               : SET [0:?] OF isolierter_Knoten
                                             FOR liegt_in_Masche;
   begrenzt_Koerper              : SET [0:?] OF Koerper FOR hat_Masche;
END_ENTITY;

ENTITY Koerper
SUBTYPE OF (Raumbezugsart);
--- Attribute :
--- Relationen :
   hat_Volumen                   : OPTIONAL SET [1:?] OF Volumen;
   hat_Masche                    : OPTIONAL SET [1:?] OF Masche;
INVERSE
   stellt_Volumenobjekt_dar      : SET [0:?] OF Volumenobjekt_Modell
                                             FOR dargestellt_von_Koerper;
END_ENTITY;

ENTITY Punkt
SUPERTYPE OF (gerechneter_Punkt)
SUBTYPE OF (Raumbezugsart);
--- Attribute :
   Herkunft                      : OPTIONAL Koordinatenherkunft;
   Genauigkeit                   : OPTIONAL Koordinatengenauigkeit;
--- Relationen :
   hat_Lage                      : direct_position;
INVERSE
   stellt_Punktobjekt_dar        : SET [0:?] OF Punktobjekt_Modell
                                             FOR dargestellt_von_Punkt;
   von_Knoten                    : SET [0:?] OF Knoten FOR hat_Punkt;
   Beginn_von_Linienelement      : SET [0:?] OF Linienelement_3D
                                             FOR beginnt_bei_Punkt;
   Ende_von_Linienelement        : SET [0:?] OF Linienelement_3D
                                             FOR endet_bei_Punkt;
   Zwischenpunkt_von_Kreisbogen  : SET[0:?] OF Kreisbogen
                                      FOR hat_Zwischenpunkt;
   Stuetzpunkt_in_Spline         : SET [0:?] OF Linienelement_Spline
                                             FOR hat_Stuetzpunkte;
END_ENTITY;

ENTITY Koordinatenherkunft;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : INTEGER;
   Langtext                      : STRING(30);
--- Relationen:
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Koordinatenherkunft VALUES (1,'eigene Digitalisierung')
INSERT INTO Koordinatenherkunft VALUES (2,'Fremddigitalisierung')
INSERT INTO Koordinatenherkunft VALUES (3,'ATKIS')
INSERT INTO Koordinatenherkunft VALUES (4,'ALK')
INSERT INTO Koordinatenherkunft VALUES (5,'örtliche Aufnahme')

   END_SQL
*)

TYPE Koordinatengenauigkeit = Meter;
END_TYPE;

ENTITY gerechneter_Punkt
SUBTYPE OF (Punkt);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Linie
SUBTYPE OF (Raumbezugsart);
   (* BEMERKUNG Reihenfolge anpassen *)
   (* BEMERKUNG Redundanz beseitigen *)
--- Attribute :
--- Relationen :
   besteht_aus_Linienelementen   : LIST [1:?] OF Linienelement_3D;
   beschreibt_Linien_auf_Flelem  : OPTIONAL SET [1:?] OF Linie_Flaechenelement;
INVERSE
   stellt_Linienobjekt_dar       : SET [0:?] OF Linienobjekt_Modell
                                             FOR dargestellt_von_Linie;
   von_Kante                     : SET [0:?] OF Kante FOR hat_Linie;
END_ENTITY;

ENTITY Linienelement_3D
ABSTRACT SUPERTYPE OF (ONEOF(Linienelement_Spline,gerades_Linienelement,
                             Kreisbogen))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Unterbrechung                 : OPTIONAL BOOLEAN;
--- Relationen :
   beginnt_bei_Punkt             : Punkt;
   endet_bei_Punkt               : Punkt;
INVERSE
   zu_Linie                      : Linie FOR besteht_aus_Linienelementen;
END_ENTITY;

ENTITY Linienelement_Spline
SUBTYPE OF (Linienelement_3D);
   (* BEMERKUNG Reihenfolge anpassen *)
--- Attribute :
   tangentialer_Anschluss        : OPTIONAL tangentialer_Anschluss;
   geschlossen                   : OPTIONAL BOOLEAN;
   Kruemmung_am_Anfang           : OPTIONAL Real;
   Kruemmung_am_Ende             : OPTIONAL Real;
   Tangente_am_Anfang            : OPTIONAL Winkel;
   Tangente_am_Ende              : OPTIONAL Winkel;
--- Relationen :
   hat_Stuetzpunkte              : OPTIONAL LIST [1:?] OF Punkt;
END_ENTITY;

ENTITY tangentialer_Anschluss;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING(20);
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO tangentialer_Anschluss VALUES (0,'am Anfang')
INSERT INTO tangentialer_Anschluss VALUES (1,'am Ende')
INSERT INTO tangentialer_Anschluss VALUES (2,'an beiden Enden')

   END_SQL
*)

ENTITY gerades_Linienelement
SUBTYPE OF (Linienelement_3D);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Kreisbogen
SUBTYPE OF (Linienelement_3D);
--- Attribute :
--- Relationen :
   hat_Zwischenpunkt             : Punkt;
END_ENTITY;

ENTITY Linie_Flaechenelement
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   bei_Linienfunktion            : Linienfunktion;
INVERSE
   Linie                         : Linie FOR beschreibt_Linien_auf_Flelem;
   Flaechenelement               : Flaechenelement
                                              FOR beschrieben_durch_Linien;
END_ENTITY;

ENTITY Linienfunktion;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING(20);
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Linienfunktion VALUES (0,'einschließende Linie')
INSERT INTO Linienfunktion VALUES (1,'ausschließende Linie')

   END_SQL
*)

ENTITY Flaeche
ABSTRACT SUPERTYPE OF (ONEOF(Flaechenelement,komplexe_Flaeche))
SUBTYPE OF (Raumbezugsart);
--- Attribute :
--- Relationen :
INVERSE
   stellt_Flaechenobjekt_dar     : SET [0:?] OF Flaechenobjekt_Modell
                                             FOR dargestellt_von_Flaeche;
   von_Masche                    : SET [0:?] OF Masche FOR hat_Flaeche;
   begrenzt_Volumen              : SET [0:?] OF Volumen FOR hat_Flaeche;
   erste_Flaeche_in              : SET [0:?] OF komplexe_Flaeche
                                             FOR hat_erste_Flaeche;
   zweite_Flaeche_in             : SET [0:?] OF komplexe_Flaeche
                                             FOR hat_zweite_Flaeche;
END_ENTITY;

ENTITY Flaechenelement
SUBTYPE OF (Flaeche);
--- Attribute :
--- Relationen :
   beschrieben_durch_Linien      : Linie_Flaechenelement;
END_ENTITY;

ENTITY komplexe_Flaeche
SUBTYPE OF (Flaeche);
--- Attribute :
--- Relationen :
   hat_erste_Flaeche             : Flaeche;
   hat_zweite_Flaeche            : Flaeche;
END_ENTITY;

ENTITY Volumen
SUBTYPE OF (Raumbezugsart);
--- Attribute :
--- Relationen :
   hat_Flaeche                   : SET [1:?] OF Flaeche;
INVERSE
   stellt_Volumenobjekt_dar      : SET [0:?] OF Volumenobjekt_Modell
                                             FOR dargestellt_von_Volumen;
   von_Koerper                   : SET [0:?] OF Koerper FOR hat_Volumen;
END_ENTITY;

ENTITY BoundingBox
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   lu                            : direct_position;
   lo                            : direct_position;
   ru                            : direct_position;
   ro                            : direct_position;
--- Relationen :
INVERSE
   zu_TK25Blatt                  : SET[0:?] OF TK25Blatt FOR hat_Bereich;
END_ENTITY;

END_SCHEMA; -- Geometrieschema



SCHEMA direct_positioning_schema;

(*

Historie:

xx.xx.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Schema Topografie erstellt

29.06.2004 - 1.007 (1.009)
Anpassung an ASB-Netzdaten, Stand September 2002

03.09.2003 - 1.006 (1.008)
formale Versionierung durch Versionierung Geometrieschema:
Präzisierung des Zusammenhangs von Linien
Ergänzung von Flächengeometrie für Erwerbsfläche
 und Nutzungsart_Teilflaeche
Anbindung des Schemas Ökologie

31.05.2002 - 1.005 (1.007)
formale Versionierung durch Versionierung Geometrieschema:
Erweiterung Linienelement_3D, Linienelement_Spline
gemäß Dokument N0030

24.10.2001 - 1.004 (1.005)
formale Versionierung durch Versionierung Geometrieschema:
Korrekturen in Schlüsseltabellen

22.06.2001 - 1.003 (1.004)
formale Versionierung durch Versionierung Geometrieschema:
Überarbeitung in Folge des Änderungsantrags A0006
Beziehung zum Schema Unfall ergänzt

18.12.2000 - 1.002 (1.002)
formale Versionierung durch Versionierung Geometrieschema:
Korrektur: Ergänzung der Informationen "geschlossen"
und "tangentialer Anschluss" im Linienelement_Spline

29.10.2000 - 1.001 (1.001)
formale Versionierung durch Versionierung Geometrieschema:
Anbindung an Schema allgemeine_Geometrieobjekte

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Geometrieschema (Punkt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt);

ENTITY direct_position
SUBTYPE OF (OKSTRA_Objekt);
   (* BEMERKUNG Koordinate anpassen *)
--- Attribute :
   in_pos_ref_system             : OPTIONAL STRING(30);
   Koordinate                    : LIST[2:3] OF REAL;
   in_coordinate_system          : OPTIONAL STRING(30);
--- Relationen :
INVERSE
   von_Punkt                     : Punkt FOR hat_Lage;
END_ENTITY;

END_SCHEMA;  -- direct_positioning_schema
SCHEMA Historisierung;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073
Aufweichung der Relation identisches_Netzteil - Ereignis gemäß N0079
Korrektur der Kommentare in der FUNCTION Objektfolge_konsistent

09.09.2005 - 1.010 (1.010)
Schema Arbeitsstelle_an_Strassen erstellt

29.06.2004 - 1.006 (1.009)
Dokument in Schema Allgemeine Objekte verlegt

03.09.2003 - 1.005 (1.008)
Anbindung des Schemas Ökologie
Ereignis optional im historischen Objekt

31.05.2002 - 1.004 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr,
einige Subtypen von historisches_Objekt gelöscht

24.10.2001 - 1.003 (1.005)
Korrektur im Teilabschnitt_IdNT (SQL)

12.09.2001 - 1.002 (1.004)
Vermessungspunkt als Subtyp von historisches_Objekt ergänzt

11.12.2000 - 1.001 (1.002)
Symbolische Verweise integriert für
Abschnitt_oder_Ast und Strassenbaudienststelle

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Teilabschnitt,Strasse,Netzbereich,Strecke,Route,
   Netzknoten,BAB_Knotennummer,Abschnitt_oder_Ast,Teilnetz,
   Verbotene_Fahrbeziehung,Nullpunkt,Punktobjekt_hist,Strassenelement,
   Bereichsobjekt_hist,Streckenobjekt_hist,Verbindungspunkt);

REFERENCE FROM Administration (Strassenbaudienststelle_abstrakt,UI_Partner,
                               ASB_Objekt);

REFERENCE FROM Strassenausstattungen (Leitungsverlauf,Leitungstraeger,
                                    Leitungsart,entwaesserte_Fahrbahnflaeche,
                                    Lage_Entwaesserung,Art_der_Entwaesserung);

REFERENCE FROM Verkehr (Fahrstreifen_Nummer,max_Hoehe,
                        Fkt_d_Verb_im_Knotenpktber);

REFERENCE FROM Bauliche_Strasseneigenschaften (Schichtart,Schichtmaterial,
                        Streifenart,Baustoff,Profil);

REFERENCE FROM Statische_Beschilderung (zeitlicher_Gueltigkeitsber);

REFERENCE FROM Umfeldmessstelle (Umfeldmessstelle);

REFERENCE FROM Dynamische_Beschilderung (Kombination_von_Anlagentypen,
   SB_Anlagentyp,SB_Anzeigezustaende,WW_Anzeigezustaende,WW_Wirkungsbereiche,
   KB_Anlagentyp,KB_Anzeigezustaende,richtungsbezogener_WB,
   Angaben_zum_Knotenpunkt,Betriebsform,RW_Anzeigezustaende,RW_Wirkungsbereich,
   Art_der_Stromversorgung,manuelle_Steuerung,Datenuebertragungssystem,
   Unterzentrale,Verkehrsrechnerzentrale,Ueberwachung_der_Anlage,
   Wechselverkehrszeichen,Art_der_Aufstellung,Anzahl_der_Anzeigequerschnitte,
   Detektionsmethode,Art_der_Anordnung,Art_der_erfassten_Daten,
   Anzahl_der_Messquerschnitte);

REFERENCE FROM Automatische_Dauerzaehlstelle (Erfassungsmerkmale_DZ,
                                              Detektoren_DZ,Zaehlgeraet);

REFERENCE FROM Manuelle_Zaehlstelle (manuelle_Zaehlstelle_SVZ);

REFERENCE FROM Lichtsignalanlage (Rotlichtueberwachung,
   Angaben_zum_Knotenpunkt_LSA,Grundlage_und_Inbetriebn_daten,
   Angaben_zu_Verkehrsdaten,Signalprogrammparameter,hinterlegte_Programme,
   akust_oder_taktile_Signalgeber,Angaben_zum_Steuergeraet,
   Angaben_zur_Verkabelung,Angaben_z_Aufstellvorrichtung,optische_Signalgeber,
   Erfassungseinrichtungen_IV,Erfassungseinrichtungen_OeV,
   uebergeordnete_Zentrale);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Datum,ZeitraumOKSTRA_Schluesseltabelle,
                                   Datum,Dokument_abstrakt,Dokument,Jahr);

REFERENCE FROM Vermessungspunkt (Vermessungspunkt);

REFERENCE FROM Oekologie (Bewuchs,Baumschaden);

REFERENCE FROM Arbeitsstelle_an_Strassen (Status_der_Arbeitsstelle);

ENTITY historisches_Objekt
ABSTRACT SUPERTYPE OF (ONEOF(Strasse,Netzknoten,Netzbereich,
   BAB_Knotennummer,Abschnitt_oder_Ast,Verbotene_Fahrbeziehung,Route,Strecke,
   Strassenelement,Nullpunkt,Punktobjekt_hist,Bereichsobjekt_hist,Teilnetz,
   Streckenobjekt_hist,UI_Partner,Leitungsverlauf,Leitungstraeger,Leitungsart,
   entwaesserte_Fahrbahnflaeche,Lage_Entwaesserung,Art_der_Entwaesserung,
   Fahrstreifen_Nummer,max_Hoehe,Fkt_d_Verb_im_Knotenpktber,Schichtart,
   Schichtmaterial,Streifenart,Baustoff,Profil,Verbindungspunkt,
   zeitlicher_Gueltigkeitsber,Umfeldmessstelle,
   Kombination_von_Anlagentypen,SB_Anlagentyp,SB_Anzeigezustaende,
   WW_Anzeigezustaende,WW_Wirkungsbereiche,KB_Anlagentyp,KB_Anzeigezustaende,
   richtungsbezogener_WB,Angaben_zum_Knotenpunkt,Betriebsform,
   RW_Anzeigezustaende,RW_Wirkungsbereich,Art_der_Stromversorgung,
   manuelle_Steuerung,Datenuebertragungssystem,Unterzentrale,
   Verkehrsrechnerzentrale,Ueberwachung_der_Anlage,Wechselverkehrszeichen,
   Art_der_Aufstellung,Anzahl_der_Anzeigequerschnitte,Detektionsmethode,
   Art_der_Anordnung,Art_der_erfassten_Daten,Anzahl_der_Messquerschnitte,
   Erfassungsmerkmale_DZ,Detektoren_DZ,Zaehlgeraet,manuelle_Zaehlstelle_SVZ,
   Rotlichtueberwachung,
   Angaben_zum_Knotenpunkt_LSA,Grundlage_und_Inbetriebn_daten,
   Angaben_zu_Verkehrsdaten,Signalprogrammparameter,hinterlegte_Programme,
   akust_oder_taktile_Signalgeber,Angaben_zum_Steuergeraet,
   Angaben_zur_Verkabelung,Angaben_z_Aufstellvorrichtung,optische_Signalgeber,
   Erfassungseinrichtungen_IV,Erfassungseinrichtungen_OeV,
   uebergeordnete_Zentrale,Zeitraum,Dokument,Vermessungspunkt,
   Bewuchs,Baumschaden,Status_der_Arbeitsstelle))
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
   (* MIX_IN gueltig_von,gueltig_bis *)
--- Attribute :
   gueltig_von                   : OPTIONAL Datum;
   gueltig_bis                   : OPTIONAL Datum;
--- Relationen :
   erzeugt_von_Ereignis          : OPTIONAL Ereignis;
   geloescht_von_Ereignis        : OPTIONAL Ereignis;
   hat_Vorgaenger_hist_Objekt    : OPTIONAL historisches_Objekt;
INVERSE
   hat_Nachfolger_hist_Objekt    : SET [0:1] OF historisches_Objekt
                                             FOR hat_Vorgaenger_hist_Objekt;
WHERE
   Objektfolge_konsistent        : Objektfolge_konsistent(SELF);
END_ENTITY;

FUNCTION Objektfolge_konsistent(hO:historisches_Objekt) : BOOLEAN;
LOCAL
   NJ,NM,NT,VJ,VM,VT             : INTEGER;
   VE,NA                         : Datum;
   VO                            : historisches_Objekt;
END_LOCAL;
   IF EXISTS(hO.hat_Vorgaenger_hist_Objekt) THEN
      VO := hO.hat_Vorgaenger_hist_Objekt;
      IF EXISTS(hO.gueltig_von) AND EXISTS(VO.gueltig_bis) THEN
         NA := hO.gueltig_von;    -- neues Objekt / Nachfolger
         NJ := VALUE(NA[7:10]);    -- Jahr des Anfangsdatums
         NM := VALUE(NA[4:5]);     -- Monat des Anfangsdatums
         NT := VALUE(NA[1:2]);     -- Tag des Anfangsdatums
         VE := VO.gueltig_bis;    -- altes Objekt / Vorgaenger
         VJ := VALUE(VE[7:10]);    -- Jahr des Enddatums
         VM := VALUE(VE[4:5]);     -- Monat des Enddatums
         VT := VALUE(VE[1:2]);     -- Tag des Enddatums
         RETURN ( ( NJ * 10000 + NM * 100 + NT )
                > ( VJ * 10000 + VM * 100 + VT ) );
      ELSE
         RETURN (FALSE);
      END_IF;
   ELSE
      RETURN (TRUE);
   END_IF;
END_FUNCTION;

ENTITY Ereignis
SUBTYPE OF (ASB_Objekt);
--- Attribute :
   Jahr_des_Ereignisses          : Jahr;
   laufende_Nummer               : INTEGER;
   PROJIS_Nummer                 : STRING(20);
   Verkehrseinheit               : STRING(3);
   Wirksamkeitsdatum             : Datum;
--- Relationen :
   gehoert_zu_Projekt            : OPTIONAL Projekt_Strassenbau;
   in_Bauamt                     : SET [1:?] OF Strassenbaudienststelle_abstrakt; (* O *)
   hat_Dokument_zur_Erlaeuterung : OPTIONAL SET[1:?] OF Dokument_abstrakt;
   hat_identisches_Netzteil      : OPTIONAL SET [1:?] OF identisches_Netzteil;
INVERSE
   erzeugt_historisches_Objekt   : SET [0:?] OF historisches_Objekt
                                             FOR erzeugt_von_Ereignis;
   loescht_historisches_Objekt   : SET [0:?] OF historisches_Objekt
                                             FOR geloescht_von_Ereignis;
END_ENTITY;

ENTITY Projekt_Strassenbau
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
INVERSE
   hat_Ereignis                  : SET [0:?] OF Ereignis
                                             FOR gehoert_zu_Projekt;
END_ENTITY;

ENTITY identisches_Netzteil
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   mit_Veraenderungsart          : OPTIONAL Veraenderungsart;
   war_Teilabschnitt             : OPTIONAL Teilabschnitt_IdNT;
   wurde_zu_Teilabschnitt        : OPTIONAL Teilabschnitt_IdNT;
INVERSE
   Teil_von_Ereignis             : SET [0:1] OF Ereignis FOR hat_identisches_Netzteil;
WHERE
   Bezug_zu_Teilabschnitt        : EXISTS(war_Teilabschnitt) OR
                                   EXISTS(wurde_zu_Teilabschnitt);
   (* BEDINGUNG ( war_Teilabschnitt IS NOT NULL ) OR
                ( wurde_zu_Teilabschnitt IS NOT NULL ) *)
END_ENTITY;

ENTITY Veraenderungsart;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(2) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(2);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Veraenderungsart VALUES ('NB','Neubau')
INSERT INTO Veraenderungsart VALUES ('VB','Vollausbau')
INSERT INTO Veraenderungsart VALUES ('B','Zwischenausbau')
INSERT INTO Veraenderungsart VALUES ('RE','Rekultivierung')
INSERT INTO Veraenderungsart VALUES ('WI','Widmung')
INSERT INTO Veraenderungsart VALUES ('AU','Aufstufung')
INSERT INTO Veraenderungsart VALUES ('AB','Abstufung')
INSERT INTO Veraenderungsart VALUES ('UM','Umnummerierung der Straßenbezeichnung')
INSERT INTO Veraenderungsart VALUES ('EZ','Einziehung')
INSERT INTO Veraenderungsart VALUES ('OD','Verlegung der OD-Grenze')
INSERT INTO Veraenderungsart VALUES ('UI','UI-Vertrag')
INSERT INTO Veraenderungsart VALUES ('GR','Grenzverlegung')
INSERT INTO Veraenderungsart VALUES ('AE','Änderung der Abschnitts-/Astbezeichnung')
INSERT INTO Veraenderungsart VALUES ('LN','Längenänderung infolge Neumessung')
INSERT INTO Veraenderungsart VALUES ('KO','Korrektur')

   END_SQL
*)

ENTITY Teilabschnitt_IdNT
SUBTYPE OF (OKSTRA_Objekt,Teilabschnitt);
   (* EINMAL Abschnitt_oder_Ast *)
   (* BEMERKUNG Stations-Attribute umbenennen *)
--- Attribute :
--- Relationen :
INVERSE
   altes_Netzteil                : SET [0:1] OF identisches_Netzteil
                                             FOR war_Teilabschnitt;
   neues_Netzteil                : SET [0:1] OF identisches_Netzteil
                                             FOR wurde_zu_Teilabschnitt;
WHERE
   entweder_alt_oder_neu         : EXISTS(altes_Netzteil) XOR
                                   EXISTS(neues_Netzteil);
END_ENTITY;

END_SCHEMA; -- Historisierung
SCHEMA Allgemeine_Objekte;

(*
Historie:

02.08.2006 - 1.011
Ergänzung von RAS-Verm-Objekten gemäß N0071
Einführung OKSTRA-ID gemäß N0073
Einführung des Schemas Liegenschaftsverwaltung gemäß N0080

09.09.2005 - 1.010 (1.010)
Anpassung an ASB-ING, Stand 2004
Schema Arbeitsstelle_an_Strassen erstellt

29.06.2004 - 1.006 (1.009)
Anbindung Schema Kreuzungen gemäß ASB-Netzdaten, Stand September 2002
Aufnahme des Dokuments aus Schema Administration

03.09.2003 - 1.005 (1.008)
Ergänzung der Währungsangabe, Vorzeichen, Objekt-ID,
Foto und Sensor
Umbenennung Waehrung in Betrag
Ergänzung von allgemeinen Objekten gemäß N0035

31.05.2002 - 1.004 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

12.09.2001 - 1.003 (1.004)
Typen Waehrung, Kubikzentimeter, Promille, Anzahl_einstellig ergänzt

11.12.2000 - 1.002 (1.002)
oertliche_Zuordnung, oertliche_Zuordnung_SP,
nicht_nach_ASB_klass_Strasse in Schema Straßenetz verschoben;
verwaltungstechn_Zuordnung in Schema Administration verschoben

29.10.2000 - 1.001 (1.001)
Integration der Schemata allgemeine Geometrieobjekte und
Grunderwerb

15.10.1999 - 1.000 (1.000)
Erste Version des OKSTRA verabschiedet
*)

REFERENCE FROM Strassennetz (Netzknoten_abstraktStrassenklasse,Strassenbezeichnung,Knotenart,
                             Strasse_Knotenpunktsform,Knotenpunktsystem,Netzknoten_abstrakt,TK25Blatt,Nummernintervall,Stadium,
                             Abschnitt_oder_Ast_abstrakt,Nullpunkt_abstraktTK25Blatt,Nummernintervall,Stadium,Tab_Stadium,
                             Punktobjekt,oertliche_ZuordnungHerkunft_Laenge,Zweig_der_Trennung,Funktion_des_Astes,
                             nicht_nach_ASB_klass_Betriebsmerkmal,Nullpunktart,Strassenpunkt,
                             Bezugsrichtung,Punktobjekt_o_Bereichsobjekt,oertliche_Zuordnung,
                             nicht_nach_ASB_klass_Strasse,Punktobjekt_o_Bereichsobjekt,
                             Bereichsobjekt,Teilnetzklasse,Winterdienstprioritaet,
                             Streckenobjekt,Teilnetzkomponente,Routenkomponente,
                             Strassenelement_abstrakt,Verbindungspunkt_abstraktVerkehrsrichtung_SE);

REFERENCE FROM Administration (ASB_Objekt,Verwaltungsbezirk_abstraktKreisart,Baulast_Strassenklasse,
                               Strassenbaudienststelle_abstraktGemeinde_Funktion,Art_UI_Vereinbarung,Art_Baulast,
                               Tab_OD_FS,Tab_Widmung,verwaltungstechn_Zuordnung,
                               Polizeidienststelle,Art_Baulasttraeger);

REFERENCE FROM Strassenausstattungen (Strassenentwaesserung,LeitungVerkehr (Verkehrsrichtung,Tab_Funktion);

REFERENCE FROM Bauliche_Strasseneigenschaften (Kennzeichen_Bahnigkeit,Hindernis_Art,
                                               Profilform);                              

REFERENCE FROM Strassenausstattungen (Leitung,Tab_Markierung,Strassenentwaesserung,
                                      Lage,Einleitung);

REFERENCE FROM Strassenzustandsdaten (ZEB_Projekt,ZEB_Parameterwert,
                                      Art_des_ZEB_Objektes,ZEB_Parameter,
                                      ZEB_Dokument,ZEB_Ereignis,ZEB_Subjekt,
                                      ZEB_Parameterliste);,Art_ZEB_Parameter,
                                      Art_ZEB_Methode);

REFERENCE FROM Bauwerke (Bauwerk,Teilbauwerk,Sachverhalt,Info_Strasse,
                         Bauwerk_Verkehrsstaerke,Durchfahrtshoehen,
                         Bauwerksbeschilderung,Bauwerksbelaege,
                         Entwuerfe_und_Berechnungen,Brueckenfeld_Stuetzung,
                         Segment_Tunnel_Trogbauwerk,Segment_Laermschutzbauwerk,
                         Segment_Stuetzbauwerk,Pruefanweisungen,
                         durchgef_Pruefungen_Messungen,gegenw_dokum_Schaden,
                         gegenw_dokum_Bauwerkszustand,Schaden_abgeschl_Prfg,
                         abgeschlossene_Pruefung,gegenw_dokum_Empfehlung,
                         Empfehlung_abgeschl_Prfg,Prueffahrzeuge_Pruefgeraete,
                         Anlagen_Bauwerksbuch,Verwaltungsmassn_Sondervereinb,
                         Bau_und_Erhaltungsmassnahme,Kosten_fuer_Bau_Erh_und_Betr,
                         Ausstattung,Schutzeinrichtungen,Vorspannungen,
                         Gruendungen,Erd_und_Felsanker,Lager,Fahrbahnuebergang,
                         Kappe,Brueckenseile_und_Kabel,Abdichtungen,
                         statisches_System_Tragfaehigkt,Baustoff_Bauwerk,Gestaltungen,
                         Leitungen_an_Bauwerken,Verfuellungen,Betonersatzsystem,
                         Oberflaechenschutzsystem,Korrosionsschutzbeschichtungen,
                         Reaktionsharzgeb_Duennbelaege,Tunnelbeleuchtung,
                         Tunnellueftung,Tunnelsicherheit,
                         Tunnel_Verkehrseinrichtungen,Tunnel_Zentrale_Anlagen,);
                         Bauwerk_abstrakt,Teilbauwerk_abstrakt);

REFERENCE FROM Entwurf (Achselementtyp,Schnittgeometrie,Polygon,Punktfolge,Tangentenfolge,Ausrundung,
                        Ausrundungstyp,Tangente_Gerade,Trassenkoerper,dynamisches_Querprofil,RQ_Code,
                        RQ_Code_Modul,Zuordnung_Ausgangsdaten,Ausgangsdaten_QP,Querprofil,
                        Art_des_Horizonts,Schnittebene,SNT_Punkt,BR_Punktfolge,BR_Punkt,
                        Breitenberechnung,Aufweitung_Verbreit_Verbind,Lage_der_Knicklinie,HZ_PunktArt_der_Verziehung,
                        Lage_der_Knicklinie,Typ_der_Knicklinie,HZ_Punkt,Hoehe_Gradiente,Querneigungswechsel,QN_Punkt,HB_Punkt,HB_Neigung,
                        AW_Koor,Entwurfsparameter,V_Koor,SW_Koor,allgemeine_Eigenschaften);Querneigungswechsel,Verziehungsform,QN_Punkt,HB_Punkt,HB_Neigung,
                        AW_Koor,Entwurfsparameter,Strassenkategorie_RAS_L,
                        V_Koor,SW_Koor,allgemeine_Eigenschaften);

REFERENCE FROM Projektressourcen (Kostenberechnung_nach_AKS,Ausschreibung_und_Vergabe,Abrechnung,
                                  Projektressourcen);

REFERENCE FROM Automatische_Dauerzaehlstelle (autom_Dauerzaehlst_abstrakt,Zaehlstellennummer,Art_Zaehlstellennummer,
                                              Richtungen,Himmelsrichtung,Erfassungstechnik,
                                              Unterzentrale_Verkehrsrechnerz,Ableitung_DZ,
                                              Ableitung_DZ,Ableitung_autom_Dauerzaehlst);

REFERENCE FROM Verkehrsstaerke (DTV_Basis,MSV,Anteil_am_DTV,Zaehlstelle_abstraktFahrzeugart,Fahrzeuggruppe,Tagesgruppe,
                                Kennwert_zur_Laermberechnung,Anteil_KennwertFahrtzweckgruppe,Normalzeitbereich,weitere_Tagesgruppen,
                                Jahresganglinientyp,WochenganglinientypZaehlstelle,Kennwert_zur_Laermberechnung,Stundengruppe,
                                Tagesganglinientyp,Ganglinie,Ganglinienwert);Anteil_Kennwert,Jahresganglinientyp,Typ_Jahresganglinie,
                                Wochenganglinientyp,Typ_Wochenganglinie,Tagesganglinientyp,
                                Tagesgruppe_Typ,Ganglinie,Intervall_Einheit,Ganglinienwert);

REFERENCE FROM Erfassung_Geschwindigkeiten (Erfassung_Geschwindigkeiten,
                                            V_Verteilungen,Anzahl_V_Klassen,
                                            V_Klassen,abgel_Werte_u_Verteilgen_VK,
                                            aggregierte_Werte,mittlere_Geschwindigkeit,
                                            abgeleitete_Werte_VM);

REFERENCE FROM Achslastdaten (Achslastdatenerfassung,abgel_Werte_und_Verteilungen,
                              GG_Verteilung_einer_FZ_Klasse,GG_Klasse,Achstyp,
                              Achslastverteilung_e_Achstyps,Klasse_AL);

REFERENCE FROM Einzelfahrzeugdaten (Einzelfahrzeugdatenerfassung,
                                    zugehoerige_Fahrzeugklasse,zugehoeriger_Zeitpunkt,
                                    fahrzeugbezogene_Achslastdaten,Ueberladung,
                                    achsbezogene_Daten);

REFERENCE FROM Manuelle_Zaehlstelle (manuelle_Zaehlstelle_abstrakt);

REFERENCE FROM Umfeldmessstelle (Messdaten,Erfassungsmodalitaeten,
                                 Lage_der_Sensoren,Erfassungsbereich,Zaehlzeitraum,
                                 Detektoren_Umfelddatenerfassg,Umfang_Umfelddaten,
                                 Witterungsdaten,Umfelddaten,
                                 witterungsbed_Strassenzustand);,
                                 Zaehlintervalllaenge);

REFERENCE FROM Unfall (Unfall,Fahrtrichtung,kommunale_Strasse,Angaben_zur_Unfallzeit,
                       Angaben_zum_Unfallgeschehen,Angaben_zu_UnfallumstaendenUnfallart,Unfallursache,
                       Unfallkategorie,Unfalltyp,Angaben_zu_Unfallbeteiligten,UnfallbeteiligterUnfallumstaenden,
                       Mitfahrer,Charakteristik_d_Unfallfahrzeug,DV_Merkmale_StaLa);Unfallstelle,Besonderheiten_d_Unfallstelle,
                       Verkehrsregelung,Lichtverhaeltnisse,Strassenbefestigung,
                       Strassenzustand,Witterung,Verkehrsstufe,Hindernisart,
                       Angaben_zu_Unfallbeteiligten,Unfallbeteiligter,Geschlecht,
                       Art_der_Verkehrsbeteiligung,Wohnsitz_Ausl,Art_der_Verletzung,
                       Mitfahrer,Unfallfahrzeug,Gefahrklasse,Gefahrgutkennzeichen,
                       DV_Merkmale_StaLa);

REFERENCE FROM Dynamische_Beschilderung (dyn_verkehrsreg_Beschilderung,Einsatzdauer,
                                         KB_Wirkungsbereich,astbezogener_WBArt_der_Dauer,Tab_SB_Anlagentyp,
                                         Tab_Wirkungsbereich,WW_Anlagenausstattung,SteuerungAnlagentyp,
                                         Anzeigesystem,DatenerfassungseinrichtungenTab_KB_Anlagentyp,KB_Wirkungsbereich,
                                         Gueltigkeitsbereich);Tab_KB_Wirkungsbereich,astbezogener_WB,

REFERENCE FROM Statische_Beschilderung (Wegweiser,komplexer_Wegweiser,Wegweiserbild,
                                         Anlagenausstattung,Tab_Art_der_Stromversorgung,
                                         Steuerung,Tab_Steuerung,Datenuebertragung_SST_UZ,
                                         Datenuebertragung_UZ_VRZ,Existenz_Unterzentrale,
                                         Exist_Verkehrsrechnerzentrale,Anzeigesystem,
                                         Bauart_des_Zeichens,Tab_Art_der_Aufstellung,
                                         Datenerfassungseinrichtungen,Methode_VDE,Methode_UDE,
                                         Tab_Art_der_Anordnung,Gueltigkeitsbereich);

REFERENCE FROM Statische_Beschilderung (Wegweiser,komplexer_Wegweiser,Wegweiserbild,Bildart,
                                        Wegweisertyp,lichttechnische_Bauart,Sichtrichtung,
                                        StVO_Zeichennummer,Grundfarbe_Wegweiser,
                                        Verkehrszeichentraeger,Aufstellvorrichtung_VZT,
                                        Art_der_Aufstellvorrichtung,Material_Aufstellvorrichtung,
                                        Wegweiserinhalt,komplexer_Wegweiserinhalt,
                                        Zielangabe,Standort_BeschilderungInhaltstyp,Schriftart,Schriftfarbe,Schriftgroesse,
                                        verkehrsregelnde_Funktion,StVO_ZuordnungGrundfarbe_Wegweiserinhalt,Symbol_graphisch,
                                        Gueltigkeitsbereich_VRB,Numerierung);Pfeilart,Pfeilgrundform,Pfeilspitze,Pfeilschaft,

REFERENCE FROM Lichtsignalanlage (Lichtsignalanlage,Softwarekomponenten,Hardwarekomponenten);
                                        Zielangabe,Zielkategorie,Standort_Beschilderung,
                                        Aufstellart,verkehrsregelnde_Funktion,
                                        Funktion_verkehrsregelnd,StVO_Zuordnung,
                                        Gueltigkeitsbereich_VRB,
                                        richtungsbezogene_Ausfuehrung,Numerierung);

REFERENCE FROM Lichtsignalanlage (Lichtsignalanlage,Markierungspfeile,Einsatzzeiten,
                                  Softwarekomponenten,Auswahlverfahren,OePNV_Berechtigung,
                                  Hardwarekomponenten,Position_SG,Koordinierung,Verbindung_NK,
                                  Typ_UeZ,Eingriffsmoeglichkeit);
 
REFERENCE FROM Geometrieschema (Punktobjekt_Modell,Linienobjekt_Modell,Flaechenobjekt_Modell,
                                Volumenobjekt_Modell,Raumbezugsart,Linienelement_3DKoordinatenherkunft,
                                Linienelement_3D,tangentialer_Anschluss,Linienfunktion,
                                Linie_Flaechenelement,BoundingBox);

REFERENCE FROM direct_positioning_schema (direct_position);

REFERENCE FROM Historisierung (historisches_Objekt,Ereignis,Projekt_Strassenbau,
                               identisches_Netzteil,Veraenderungsart,Teilabschnitt_IdNT);

REFERENCE FROM Allgemeine_Geometrieobjekte (Einheit,Dreieck,Textausgestaltung,RGB_Farbe);Seiteneigenschaft,
                                            Textausgestaltung,Einfuegeposition,RGB_Farbe,
                                            Beschriftungsfahne,vertikale_Ausrichtung,
                                            horizontale_Ausrichtung);

REFERENCE FROM Grunderwerb (Attribut_Flurstueck,Erwerbsart,Erwerbsart_spezifisch,Nutzungsart,
                            Erwerbszweck,Nutzungsart,GE_Massnahme,
                            Belastung,Belastungsberechtigter,Person_Flurstueck,
                            Verhaeltnis,Flurstueck_Grundbuch,Grundbuch,Paechter_MieterEigentumsart,
                            Eigentuemer_Grundbuch,Person,Land);Paechter_Mieter,Vertragsart,Pachtart,

REFERENCE FROM Vermessungspunkt (Qualitaetsangaben_Punktort,Hoehe,
                                 Qualitaetsangaben_Hoehe,Skizze,Punktnummer_SBV,
                                 AFIS_Punkt,GPS_Empfaenger,GPS_Antenne,PCV);
                            Anordnungsart,Eigentuemer_Grundbuch,
                            Eigentumsverhaeltnis,Person,Land,Personenklasse);

REFERENCE FROM Vermessungspunkt (Punktvermarkung,Art_der_Vermarkung,Koordinatenstatus,
                                 Qualitaetsangaben_Punktort,Datenerhebung_Pos_2D,
                                 Datenerhebung_Pos_Hoehe,Datenerhebung_Pos_3D,
                                 Genauigkeit_Pos_2D,Genauigkeit_Pos_Hoehe,
                                 Genauigkeit_pos_3D,Vertrauenswuerdigk_Pos_2D,
                                 Vertrauenswuerdigk_Pos_Hoehe,Vertrauenswuerdigk_Pos_3D,
                                 Hoehe,Hoehensystem,Hoehenstatus,
                                 Qualitaetsangaben_Hoehe,Datenerhebung_Hoehe,
                                 Genauigkeit_Hoehe,Skizze,Skizzenart,GPS_Tauglichkeit,
                                 Punktstabilitaet_Lagefestpunkt,vermutete_Hoehenstabilitaet,
                                 Guete_des_Vermarkungstraegers,Topographie_und_Umwelt,
                                 Guete_des_Baugrundes,geologische_Stabilitaet,
                                 Grundwasserstand,Grundwasserschwankung,
                                 Hoehenstabilitaet_aus_Wdhmessg,Punktnummer_SBV,                         
                                 AFIS_Punkt,Ordnung_TP,Hierarchiestufe_TP,Wertigkeit_TP,
                                 Funktion_TP,Ordnung_NivP,Funktion_RSP,
                                 GPS_Empfaenger,GPS_Antenne,PCV);

REFERENCE FROM Kataster (Flurstueck_abstrakt,Flur,Grenzpunkt,Gemarkung,ALKIS_Objekt);

REFERENCE FROM Kostenberechnung (Kostra_Projekt,Projektkennzeichnung_Kostra,
                                 Zusatzdaten_Kostra,Kostendaten,Lose,KostenbeteiligteEntwurfsart_AKS,Stand_der_Fortschreibung_AKS,
                                 Berechnungsart_AKS,Genauigkeit_AKS,Zusatzdaten_Kostra,Kostenbeteiligung,Teil_Kostendaten,LeistungsbeschreibungKostendaten,
                                 Lose,Kostenbeteiligte,Typ_des_Kostenbeteiligten,Kostenbeteiligung,
                                 Art_der_Kostenbeteiligung,Teil_Kostendaten,Leistungsbeschreibung,
                                 Regionaltext_Freitext,Regionaltext_Freitext_Katalog,Formblatt_C,
                                 Formblaetter,Formblatt_A1,Formblatt_A2,Gesamtkostenverteilung,
                                 Formblatt_A3,Formblatt_B,zusammenges_Hauptteilkosten,Formblatt_S1,
                                 HOAI_Daten,HOAI_Projektdaten,Zuordnung_KBK_ING3Minderung_nach_52_5_HOAI,
                                 Zuordnung_KBK_ING3,Zuordnung_KBK_ING4,Index_HOAI_Honorarberechnung,HOAI_GrundleistungenFassung,
                                 Index_HOAI_Sonstiges,Teil,Index_HOAI_Ermittlung_ING_10_11,Flaechenanteil_Vertrag,Kostendaten);Kostenquelle,

REFERENCE FROM Oekologie (Bewuchs,Kompensationsmassnahme,Teilmassnahme,
                          Herstellung_Fertigstpflege,Entwicklungspflege,Unterhaltungspflege,
                          Baumassnahme,Pflegemassnahme_Bewuchs,Baumreihe,
                          Baumreihenabschnitt,Allee);
                                 HOAI_Honorarberechnung,Honorarvereinbarung_HOAI,
                                 HOAI_Grundleistungen,HOAI_Sonstiges,Zuschlag_b_Umbauten_u_Modern,
                                 HOAI_Ermittlung_ING_10_11,Flaechenanteil_Kostendaten);

REFERENCE FROM Oekologie (Kompensationsmassnahme,Teilmassnahme,Herstellung_Fertigstpflege,
                          Entwicklungspflege,Unterhaltungspflege,Baumassnahme,Baumart,
                          Schiefstand_Baum,Zustandsbeurteilung_Baum,Kronenschaden,Stammschaden,
                          Stammfussschaden,Wurzelschaden,Schadensursache_Baum,
                          Schadenseinstufung_Baum,Lagebeschreibung_Baum,Bewuchs,Schutzstatus_Bewuchs,
                          Pflegemassnahme_Bewuchs,Art_der_Pflegemassnahme,Quelle_Pflegemassnahme,
                          Art_Leistungserbringer_Pflege,Baumreihe,Baumreihenabschnitt,Allee);

REFERENCE FROM MELVER (MELVER,administrative_Angaben_MELVER,Haushalts_Buchungsst_MELVER,
                       Bearbeiter_MELVER,Angaben_zur_Bauleistung_MELVER,
                       Art_der_Baumassnahme_P_MELVER,Art_der_Baumassnahme_B_MELVER,
                       Angaben_zu_Bew_Biet_Ang_MELVER,Anz_Bewerb_Bieter_Angeb_MELVER,
                       Angaben_zur_Vergabe_Art_Bewerb_Bieter_Angeb_MELVER,Ang_zum_AuftragnehmerRegion_MELVER,
                       vertragl_Best_und_Massn_Angaben_zur_Vergabe_MELVER,Angaben_z_AuftragssummeVergabeart_MELVER,
                       Summe_n_Art_der_Arbeit_Angebotsart_MELVER,Summe_n_UnternehmensartErl_zur_Vergabeart_MELVER,
                       Summe_nach_Regionen_Ang_zum_Auftragnehmer_MELVER,Summe_bevorz_Bewerber_Art_des_Auftragnehmers_MELVER);,


REFERENCE FROM Kreuzungen (Kreuzung_Strasse_Weg,Tierwechsel);

REFERENCE FROM Arbeitsstelle_an_Strassen (Arbeitsstelle_an_Strassen,verkehrliche_Angaben_Arbeitsst,
                                          Behinderung_Prognose,Umleitung_Arbeitsstelle,
                                          Rolle_Arbeitsstelle,Rollenbeschreibung_Arbeitsst,
                       vertragl_Best_und_Massn_MELVER,rechtliche_Instanz_MELVER,
                       Angaben_z_Auftragssumme_MELVER,Summe_n_Art_der_Arbeit_MELVER,
                       Art_der_Arbeit_MELVER,Summe_n_Unternehmensart_MELVER,
                       Art_des_Unternehmens_MELVER,Summe_nach_Regionen_MELVER,
                       Summe_bevorz_Bewerber_MELVER,Grund_der_Bevorzugung_MELVER,
                       Auftragskriterium_MELVER);


REFERENCE FROM Kreuzungen (Kreuzung_Strasse_Weg,Kreuzungsart,Kreuzungslage,Beruehrungsebene,
                           Hoehenlage_aufzun_Strasse,Anschluss_Bauform,Vorrangregelung,
                           Bahnkreuzungsart,Bahnkreuzungsstadium,Bahnkreuzungslage,
                           Bahnkoerper,Bahnkreuzung_Sicherungsart,Gewaesserart,
                           Tierwechsel,Tierart,Verkehrsanlagenart);

REFERENCE FROM Arbeitsstelle_an_Strassen (Arbeitsstelle_an_Strassen,Art_der_Leistung_Arbeitsstelle,
                                          Tab_Status_der_Arbeitsstelle,verkehrliche_Angaben_Arbeitsst,
                                          Status_der_verkehrl_Angabe,Art_der_Arbeitsstelle,
                                          Art_Behinderung_Arbeitsstelle,Verkehrsfuehrung_Arbeitsstelle,
                                          Behinderung_Prognose,Behinderung_Status,Umleitung_Arbeitsstelle,
                                          RSA_Regelplan,Rolle_Arbeitsstelle,Rollenbeschreibung_Arbeitsst,
                                          Durchfuehrender_Arbeitsstelle,Firma_Arbeitsstelle,
                                          Zusatzinformationen_Arbeitsst,hist_Meldungszustand_Arbeitsst,
                                          Abbruch_Einstellung_Arbeitsst,zust_Polizeidienstst_Tab_Abbruch_Einst_Arbeitsst);,
                                          zust_Polizeidienstst_Arbeitsst);

REFERENCE FROM Topografie (Status_Eigenschaft,Geschoss,Anschrift);Bestandsstatus,Art_Boeschung,Beginn_Interpolation,
                           Art_Boeschungslinie,Gebaeudenutzung,Gebaeudefunktion,Anschrift,
                           Geschoss,Seite_Zaunpfaehle,Zaunart,Material_Zaunpfaehle,Zaunfunktion,
                           Art_Oeffnung,Mauerfunktion,Lage_Bezugsgeometrie,Material_Mauerabschnitt,
                           Gehoelzart,Heckenfunktion);

REFERENCE FROM Liegenschaftsverwaltung (LV_Flurstuecksdetails,LV_Behoerde,LV_Gebuehren);Vermoegensgruppe,
                                        LV_GEStand,LV_GEArt,LV_Behoerde,LV_Gebuehren);

TYPE GUID = String(32) FIXED;
END_TYPE;

ENTITY OKSTRA_Objekt
ABSTRACT SUPERTYPE OF (ONEOF(Strasse_abstraktTK25Blatt,Nummernintervall,Punktobjekt,oertliche_Zuordnung,
                             Netzknoten_abstrakt,TK25Blatt,Nummernintervall,
                             Stadium,Abschnitt_oder_Ast_abstrakt,
                             Nullpunkt_abstrakt,
                             Punktobjekt,oertliche_Zuordnung,
                             nicht_nach_ASB_klass_Strasse,Punktobjekt_o_Bereichsobjekt,
                             Bereichsobjekt,Streckenobjekt,Teilnetzkomponente,
                             Routenkomponente,Strassenelement_abstraktASB_Objekt,verwaltungstechn_Zuordnung,
                             Verbindungspunkt_abstrakt,ASB_Objekt,Verwaltungsbezirk_abstrakt,
                             Strassenbaudienststelle_abstrakt,
                             verwaltungstechn_Zuordnung,Polizeidienststelle,
                             ZEB_Projekt,ZEB_Parameterwert,
                             Polizeidienststelle,ZEB_Projekt,ZEB_Parameterwert,
                             Art_des_ZEB_Objektes,ZEB_Parameter,ZEB_Dokument,
                             ZEB_Ereignis,ZEB_Subjekt,ZEB_Parameterliste,
                             Bauwerk_abstrakt,Teilbauwerk_abstrakt,Schnittgeometrie,Polygon,Punktfolge,Tangentenfolge,
                             Polygon,Punktfolge,Ausrundung,Tangentenfolge,AusrundungTangente_Gerade,Trassenkoerper,
                             Tangente_Gerade,Trassenkoerper,
                             dynamisches_Querprofil,RQ_Code,RQ_Code_Modul,
                             Zuordnung_Ausgangsdaten,Ausgangsdaten_QP,
                             Querprofil,Schnittebene,SNT_Punkt,
                             BR_Punktfolge,BR_Punkt,Aufweitung_Verbreit_Verbind,
                             Lage_der_Knicklinie,HZ_Punkt,Hoehe_Gradiente,
                             Querneigungswechsel,QN_Punkt,HB_Punkt,HB_Neigung,AW_Koor,
                             Entwurfsparameter,V_Koor,SW_Koor,
                             allgemeine_Eigenschaften,Projektressourcen,
                             Kostenberechnung_nach_AKS,Ausschreibung_und_Vergabe,
                             Abrechnung,autom_Dauerzaehlst_abstrakt,Zaehlstellennummer,Richtungen,
                             Richtungen,Erfassungstechnik,Unterzentrale_Verkehrsrechnerz,
                             Ableitung_DZ,Ableitung_autom_Dauerzaehlst,DTV_Basis,
                             MSV,Anteil_am_DTV,Zaehlstelle_abstrakt,Kennwert_zur_Laermberechnung,
                             Anteil_Kennwert,Jahresganglinientyp,Wochenganglinientyp,
                             Tagesganglinientyp,Ganglinie,Ganglinienwert,
                             Erfassung_Geschwindigkeiten,V_Verteilungen,Anzahl_V_Klassen,
                             V_Klassen,abgel_Werte_u_Verteilgen_VK,aggregierte_Werte,
                             mittlere_Geschwindigkeit,abgeleitete_Werte_VM,
                             Achslastdatenerfassung,abgel_Werte_und_Verteilungen,
                             GG_Verteilung_einer_FZ_Klasse,GG_Klasse,
                             Achslastverteilung_e_Achstyps,Klasse_AL,
                             Einzelfahrzeugdatenerfassung,zugehoerige_Fahrzeugklasse,
                             zugehoeriger_Zeitpunkt,fahrzeugbezogene_Achslastdaten,
                             Ueberladung,achsbezogene_Daten,manuelle_Zaehlstelle_abstraktMessdaten,Erfassungsmodalitaeten,
                             Messdaten,Erfassungsmodalitaeten,
                             Erfassungsbereich,Zaehlzeitraum,Detektoren_Umfelddatenerfassg,
                             Umfang_Umfelddaten,Witterungsdaten,Umfelddaten,
                             witterungsbed_Strassenzustand,Unfall,kommunale_Strasse,
                             Angaben_zur_Unfallzeit,Angaben_zum_Unfallgeschehen,
                             Angaben_zu_Unfallumstaenden,Angaben_zu_Unfallbeteiligten,
                             Unfallbeteiligter,Mitfahrer,Unfallfahrzeug,
                             DV_Merkmale_StaLa,dyn_verkehrsreg_Beschilderung,Einsatzdauer,
                             KB_Wirkungsbereich,astbezogener_WB,Anlagenausstattung,
                             Steuerung,Anzeigesystem,Datenerfassungseinrichtungen,
                             Gueltigkeitsbereich,Wegweiser,komplexer_Wegweiser,Wegweiserbild,
                             komplexer_Wegweiser,Wegweiserbild,
                             Verkehrszeichentraeger,Aufstellvorrichtung_VZT,
                             Wegweiserinhalt,komplexer_Wegweiserinhalt,Zielangabe,
                             Standort_Beschilderung,verkehrsregelnde_Funktion,
                             StVO_Zuordnung,Gueltigkeitsbereich_VRB,
                             Numerierung,Lichtsignalanlage,Softwarekomponenten,
                             Hardwarekomponenten,Punktobjekt_Modell,Linienobjekt_Modell,
                             Flaechenobjekt_Modell,Volumenobjekt_Modell,Raumbezugsart,
                             Linienelement_3D,Linie_Flaechenelement,BoundingBox,
                             direct_position,historisches_Objekt,Projekt_Strassenbau,
                             identisches_Netzteil,Teilabschnitt_IdNT,
                             Waehrungsbetrag,Startdatum,DauerObjekt_mit_ID,geometrische_Auspraegung,Sensor,Sensorstandort,
                             Objekt_ID,Objekt_mit_ID,Dokument_abstraktFoto,Dreieck,Textausgestaltung,Attribut_Flurstueck,Nutzungsart,
                             geometrische_Auspraegung,Sensor,Sensorstandort,
                             Foto,Bankverbindung,Dreieck,Textausgestaltung,
                             RGB_Farbe,Attribut_Flurstueck,
                             Erwerbsart_spezifisch,Nutzungsart,
                             Belastung,Belastungsberechtigter,Person_Flurstueck,
                             Flurstueck_Grundbuch,Grundbuch,Paechter_Mieter,
                             Eigentuemer_Grundbuch,Person,LandLV_Flurstuecksdetails,LV_Behoerde,
                             LV_Flurstuecksdetails,LV_Behoerde,LV_Gebuehren,Qualitaetsangaben_Punktort,Hoehe,
                             Qualitaetsangaben_Hoehe,Skizze,Punktort,Hoehe,Qualitaetsangaben_HoehePunktnummer_SBV,AFIS_Punkt,
                             Skizze,Punktnummer_SBV,AFIS_Punkt,GPS_Empfaenger,GPS_Antenne,PCV,Flur,Grenzpunkt,Gemarkung,
                             Flurstueck_abstrakt,Flur,Grenzpunkt,Gemarkung,ALKIS_Objekt,Kostra_Projekt,Projektkennzeichnung_Kostra,
                             Kostra_Projekt,Projektkennzeichnung_Kostra,
                             Zusatzdaten_Kostra,Kostendaten,Lose,Kostenbeteiligte,
                             Kostenbeteiligung,Teil_Kostendaten,Leistungsbeschreibung,
                             Regionaltext_Freitext,Regionaltext_Freitext_Katalog,
                             Formblatt_C,Formblaetter,Formblatt_A1,Formblatt_A2,
                             Gesamtkostenverteilung,Formblatt_A3,Formblatt_B,
                             zusammenges_Hauptteilkosten,Formblatt_S1,HOAI_Daten,
                             HOAI_Projektdaten,Zuordnung_KBK_ING3,
                             Zuordnung_KBK_ING4,HOAI_Honorarberechnung,
                             HOAI_Grundleistungen,HOAI_Sonstiges,HOAI_Ermittlung_ING_10_11,
                             Flaechenanteil_Kostendaten,Kompensationsmassnahme,
                             Teilmassnahme,Herstellung_Fertigstpflege,Entwicklungspflege,
                             Unterhaltungspflege,Baumassnahme,Pflegemassnahme_Bewuchs,
                             Baumreihe,Baumreihenabschnitt,Allee,MELVER,
                             administrative_Angaben_MELVER,Haushalts_Buchungsst_MELVER,
                             Bearbeiter_MELVER,Angaben_zur_Bauleistung_MELVER,
                             Angaben_zu_Bew_Biet_Ang_MELVER,Anz_Bewerb_Bieter_Angeb_MELVER,
                             Angaben_zur_Vergabe_MELVER,Ang_zum_Auftragnehmer_MELVER,
                             vertragl_Best_und_Massn_MELVER,Angaben_z_Auftragssumme_MELVER,
                             Summe_n_Art_der_Arbeit_MELVER,Summe_n_Unternehmensart_MELVER,
                             Summe_nach_Regionen_MELVER,Summe_bevorz_Bewerber_MELVER,
                             Behinderung_Prognose,Umleitung_Arbeitsstelle,
                             Rolle_Arbeitsstelle,Rollenbeschreibung_Arbeitsst,
                             Durchfuehrender_Arbeitsstelle,Firma_Arbeitsstelle,
                             Zusatzinformationen_Arbeitsst,hist_Meldungszustand_Arbeitsst,
                             Abbruch_Einstellung_Arbeitsst,zust_Polizeidienstst_Arbeitsst,
                             Status_Eigenschaft,Erfassungsqualitaet,Geschoss,Anschrift));
   (* VERERBEN DOWN *)
--- Attribute:
   OKSTRA_ID                     : OPTIONAL GUID;
--- Relationen:
END_ENTITY;

ENTITY OKSTRA_konzept_Objekt
ABSTRACT SUPERTYPE OF (ONEOF(Strassenbezeichnung,Stadium,Strassenpunkt,Tagesgruppe,
                             Waehrungsbetrag,Startdatum,Dauer,Zeitraum,Objekt_ID,
                             Erfassungsqualitaet,Bankverbindung,RGB_Farbe,
                             Land,Punktvermarkung));
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY OKSTRA_Schluesseltabelle
ABSTRACT SUPERTYPE OF (ONEOF(Strassenklasse,Knotenart,Knotenpunktsform,Knotenpunktsystem,
                             Tab_Stadium,Herkunft_Laenge,Zweig_der_Trennung,
                             Funktion_des_Astes,Betriebsmerkmal,Nullpunktart,
                             Bezugsrichtung,Teilnetzklasse,Winterdienstprioritaet,
                             Verkehrsrichtung_SE,Kreisart,Baulast_Strassenklasse,
                             Gemeinde_Funktion,Art_UI_Vereinbarung,Art_Baulast,
                             Tab_OD_FS,Tab_Widmung,Art_Baulasttraeger,Verkehrsrichtung,
                             Tab_Funktion,Kennzeichen_Bahnigkeit,Hindernis_Art,
                             Profilform,Tab_Markierung,Lage,Einleitung,Art_ZEB_Parameter,
                             Art_ZEB_Methode,Achselementtyp,Ausrundungstyp,
                             Art_des_Horizonts,Breitenberechnung,Art_der_Verziehung,
                             Typ_der_Knicklinie,Verziehungsform,Strassenkategorie_RAS_L,
                             Art_Zaehlstellennummer,Himmelsrichtung,Fahrzeugart,
                             Fahrzeuggruppe,Fahrtzweckgruppe,Normalzeitbereich,
                             weitere_Tagesgruppen,Stundengruppe,Typ_Jahresganglinie,
                             Typ_Wochenganglinie,Tagesgruppe_Typ,Intervall_Einheit,
                             Achstyp,Lage_der_Sensoren,Zaehlintervalllaenge,
                             Fahrtrichtung,Unfallart,Unfallursache,Unfallkategorie,
                             Unfalltyp,Charakteristik_d_Unfallstelle,
                             Besonderheiten_d_Unfallstelle,Verkehrsregelung,
                             Lichtverhaeltnisse,Strassenbefestigung,
                             Strassenzustand,Witterung,Verkehrsstufe,Hindernisart,
                             Geschlecht,Art_der_Verkehrsbeteiligung,Wohnsitz_Ausl,
                             Art_der_Verletzung,Gefahrklasse,Gefahrgutkennzeichen,
                             Art_der_Dauer,Tab_SB_Anlagentyp,
                             Tab_Wirkungsbereich,WW_Anlagentyp,Tab_KB_Anlagentyp,
                             Tab_KB_Wirkungsbereich,Tab_Art_der_Stromversorgung,
                             Tab_Steuerung,Datenuebertragung_SST_UZ,
                             Datenuebertragung_UZ_VRZ,Existenz_Unterzentrale,
                             Exist_Verkehrsrechnerzentrale,Bauart_des_Zeichens,
                             Tab_Art_der_Aufstellung,Methode_VDE,Methode_UDE,
                             Tab_Art_der_Anordnung,Bildart,Wegweisertyp,
                             lichttechnische_Bauart,Sichtrichtung,StVO_Zeichennummer,
                             Grundfarbe_Wegweiser,Art_der_Aufstellvorrichtung,
                             Material_Aufstellvorrichtung,Inhaltstyp,Schriftart,
                             Schriftfarbe,Schriftgroesse,Grundfarbe_Wegweiserinhalt,
                             Symbol_graphisch,Pfeilart,Pfeilgrundform,Pfeilspitze,
                             Pfeilschaft,Zielkategorie,Aufstellart,Funktion_verkehrsregelnd,
                             richtungsbezogene_Ausfuehrung,Markierungspfeile,Einsatzzeiten,
                             Auswahlverfahren,OePNV_Berechtigung,Position_SG,
                             Koordinierung,Verbindung_NK,Typ_UeZ,Eingriffsmoeglichkeit,
                             Koordinatenherkunft,tangentialer_Anschluss,Linienfunktion,
                             Veraenderungsart,Wochentag,Waehrungsangabe,Operator,
                             Vorzeichen,Art_Sensor,fotografisches_Verfahren,
                             Erfassung_Verfahren,Einheit,Seiteneigenschaft,
                             Einfuegeposition,Beschriftungsfahne,vertikale_Ausrichtung,
                             horizontale_Ausrichtung,Erwerbsart,Erwerbsart_spezifisch,
                             Erwerbszweck,GE_Massnahme,Verhaeltnis,Eigentumsart,Vertragsart,
                             Pachtart,Anordnungsart,Eigentumsverhaeltnis,Personenklasse,
                             Art_der_Vermarkung,Koordinatenstatus,Datenerhebung_Pos_2D,
                             Datenerhebung_Pos_Hoehe,Datenerhebung_Pos_3D,
                             Genauigkeit_Pos_2D,Genauigkeit_Pos_Hoehe,Genauigkeit_Pos_3D,
                             Vertrauenswuerdigk_Pos_2D,Vertrauenswuerdigk_Pos_Hoehe,
                             Vertrauenswuerdigk_Pos_3D,Hoehensystem,Hoehenstatus,
                             Datenerhebung_Hoehe,Genauigkeit_Hoehe,Skizzenart,
                             GPS_Tauglichkeit,Punktstabilitaet_Lagefestpunkt,
                             vermutete_Hoehenstabilitaet,Guete_des_Vermarkungstraegers,
                             Topographie_und_Umwelt,Guete_des_Baugrundes,
                             geologische_Stabilitaet,Grundwasserstand,Grundwasserschwankung,
                             Hoehenstabilitaet_aus_Wdhmessg,Ordnung_TP,Hierarchiestufe_TP,
                             Wertigkeit_TP,Funktion_TP,Ordnung_NivP,Funktion_RSP,
                             Entwurfsart_AKS,Stand_der_Fortschreibung_AKS,
                             Berechnungsart_AKS,Genauigkeit_AKS,Typ_des_Kostenbeteiligten,
                             Art_der_Kostenbeteiligung,Minderung_nach_52_5_HOAI,
                             Index_HOAI_Fassung,Index_HOAI_Teil,Index_HOAI_Vertrag,
                             Kostenquelle,Honorarvereinbarung_HOAI,
                             Zuschlag_b_Umbauten_u_Modern,Baumart,Schiefstand_Baum,
                             Zustandsbeurteilung_Baum,Kronenschaden,Stammschaden,
                             Stammfussschaden,Wurzelschaden,Schadensursache_Baum,
                             Schadenseinstufung_Baum,Lagebeschreibung_Baum,
                             Schutzstatus_Bewuchs,Art_der_Pflegemassnahme,
                             Quelle_Pflegemassnahme,Art_Leistungserbringer_Pflege,
                             Art_der_Baumassnahme_P_MELVER,Art_der_Baumassnahme_B_MELVER,
                             Art_Bewerb_Bieter_Angeb_MELVER,Region_MELVER,Vergabeart_MELVER,
                             Angebotsart_MELVER,Erl_zur_Vergabeart_MELVER,
                             Art_des_Auftragnehmers_MELVER,rechtliche_Instanz_MELVER,
                             Art_der_Arbeit_MELVER,Art_des_Unternehmens_MELVER,
                             Grund_der_Bevorzugung_MELVER,Auftragskriterium_MELVER,
                             Kreuzungsart,Kreuzungslage,Beruehrungsebene,
                             Hoehenlage_aufzun_Strasse,Anschluss_Bauform,Vorrangregelung,
                             Bahnkreuzungsart,Bahnkreuzungsstadium,Bahnkreuzungslage,
                             Bahnkoerper,Bahnkreuzung_Sicherungsart,Gewaesserart,
                             Tierart,Verkehrsanlagenart,Art_der_Leistung_Arbeitsstelle,
                             Tab_Status_der_Arbeitsstelle,Status_der_verkehrl_Angabe,
                             Art_der_Arbeitsstelle,Art_Behinderung_Arbeitsstelle,
                             Verkehrsfuehrung_Arbeitsstelle,Behinderung_Status,
                             RSA_Regelplan,Tab_Abbruch_Einst_Arbeitsst,
                             Bestandsstatus,Art_Boeschung,Beginn_Interpolation,
                             Art_Boeschungslinie,Gebaeudenutzung,Gebaeudefunktion,
                             Seite_Zaunpfaehle,Zaunart,Material_Zaunpfaehle,
                             Zaunfunktion,Art_Oeffnung,Mauerfunktion,
                             Lage_Bezugsgeometrie,Material_Mauerabschnitt,Gehoelzart,
                             Heckenfunktion,LV_Vermoegensgruppe,LV_GEStand,
                             LV_GEArt));
--- Attribute :
--- Relationen :
END_ENTITY;

TYPE Datum = STRING(10) FIXED;
WHERE
   Datums_Format                 : SELF LIKE '##.##.####';
   (* BEDINGUNG SELF LIKE '__.__.____' *)
END_TYPE;

TYPE Uhrzeit = STRING(12);
WHERE
   Uhrzeit_Format                : (SELF LIKE '##:##') OR
                                   (SELF LIKE '##:##:##') OR
                                   (SELF LIKE '##:##:##:###');
   (* BEDINGUNG ( SELF LIKE '__:__' ) OR ( SELF LIKE '__:__:__' ) OR
                                         ( SELF LIKE '__:__:__:___' ) *)
END_TYPE;

TYPE Jahr = INTEGER;
END_TYPE;

TYPE Monat = INTEGER;
WHERE
   Monat_sinnvoll                : { 1 <= SELF <= 12 };
   (* BEDINGUNG ( SELF >= 1 ) AND ( SELF <= 12 ) *)
END_TYPE;

TYPE Woche = INTEGER;
WHERE
   Woche_sinnvoll                : { 1 <= SELF <= 53 };
   (* BEDINGUNG ( SELF >= 1 ) AND ( SELF <= 53 ) *)
END_TYPE;

ENTITY Wochentag;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Wochentag VALUES (1,'Sonntag')
INSERT INTO Wochentag VALUES (2,'Montag')
INSERT INTO Wochentag VALUES (3,'Dienstag')
INSERT INTO Wochentag VALUES (4,'Mittwoch')
INSERT INTO Wochentag VALUES (5,'Donnerstag')
INSERT INTO Wochentag VALUES (6,'Freitag')
INSERT INTO Wochentag VALUES (7,'Samstag')

   END_SQL
*)

TYPE Tag = INTEGER;
WHERE
   Monat_sinnvoll                : { 1 <= SELF <= 31 };
   (* BEDINGUNG ( SELF >= 1 ) AND ( SELF <= 31 ) *)
END_TYPE;

TYPE Stunde = INTEGER;
WHERE
   Stunde_sinnvoll               : { 1 <= SELF <= 12 };
   (* BEDINGUNG ( SELF >= 1 ) AND ( SELF <= 12 ) *)
END_TYPE;

TYPE Minute = INTEGER;
WHERE
   Minute_sinnvoll               : { 1 <= SELF <= 12 };
   (* BEDINGUNG ( SELF >= 1 ) AND ( SELF <= 12 ) *)
END_TYPE;

TYPE Anzahl = INTEGER;
WHERE
   Anzahl_nicht_negativ          : SELF >= 0;
   (* BEDINGUNG SELF >= 0 *)
END_TYPE;

TYPE Anzahl_einstellig = INTEGER;
WHERE
   Anzahl_zweistellig            : { 0 <= SELF <= 9 };
   (* BEDINGUNG ( SELF >= 0 ) AND ( SELF <= 9 ) *)
END_TYPE;

TYPE Anzahl_zweistellig = INTEGER;
WHERE
   Anzahl_zweistellig            : { 0 <= SELF <= 99 };
   (* BEDINGUNG ( SELF >= 0 ) AND ( SELF <= 99 ) *)
END_TYPE;

TYPE Groesse = REAL;
WHERE
   Groesse_nicht_negativ         : SELF >= 0;
   (* BEDINGUNG SELF >= 0 *)
END_TYPE;

TYPE Tage = Anzahl;
END_TYPE;

TYPE Millisekunden = Anzahl;
END_TYPE;

TYPE Meter = REAL;
END_TYPE;

TYPE Dezimeter = Groesse;
END_TYPE;

TYPE Zentimeter = Groesse;
END_TYPE;

TYPE Millimeter = Groesse;
END_TYPE;

TYPE Mikrometer = Groesse;
END_TYPE;

TYPE Kubikzentimeter = Groesse;
END_TYPE;

TYPE Kilometer = REAL;
END_TYPE;

TYPE Meter_ueber_NN = REAL;
-- kann negativ sein
END_TYPE;

TYPE Quadratmeter = Groesse;
END_TYPE;

TYPE Quadratmillimeter = Groesse;
END_TYPE;

TYPE Tonnen = Groesse;
END_TYPE;

TYPE Prozent = REAL;
-- kann negativ sein
END_TYPE;

TYPE Gon = Groesse;
END_TYPE;

TYPE Winkel = REAL;
-- zwischen -Pi und Pi
END_TYPE;

TYPE Grad = INTEGER;
WHERE
   Grad_sinnvoll                 : { 0 <= SELF <= 359 };
   (* BEDINGUNG ( SELF >= 0 ) AND ( SELF <= 359 ) *)
END_TYPE;

TYPE Newton_pro_Quadratmillimeter = Anzahl;
END_TYPE;

TYPE Kilonewton = Groesse;
END_TYPE;

TYPE Kilonewton_pro_Quadratmeter = Groesse;
END_TYPE;

TYPE Kilogramm = Groesse;
END_TYPE;

TYPE Kilogramm_pro_Quadratmeter = Groesse;
END_TYPE;

TYPE Kilogramm_pro_Kubikmeter = Groesse;
END_TYPE;

TYPE cd_pro_Quadratmeter = Anzahl;
END_TYPE;

TYPE Promille = Groesse;
END_TYPE;

TYPE Lux = Anzahl;
END_TYPE;

TYPE Kilowatt = Anzahl;
END_TYPE;

TYPE Grad_Celsius = Groesse;
END_TYPE;

TYPE Hektopascal = INTEGER;
WHERE
   Hektopascal_sinnvoll          : { 800 <= SELF <= 1200 };
   (* BEDINGUNG ( SELF >= 800 ) AND ( SELF <= 1200 ) *)
END_TYPE;

TYPE Stundenkilometer = Anzahl;
END_TYPE;

TYPE Meter_pro_Sekunde = Groesse;
WHERE
   Meter_pro_Sekunde_nicht_neg   : SELF >= 0;
   (* BEDINGUNG SELF >= 0 *)
END_TYPE;

TYPE Millimeter_pro_Stunde = Groesse;
WHERE
   Millimeter_pro_Stunde_n_neg   : SELF >= 0;
   (* BEDINGUNG SELF >= 0 *)
END_TYPE;

TYPE Betrag = Groesse;
END_TYPE;

TYPE DM = Groesse;
END_TYPE;

TYPE EURO = Groesse;
END_TYPE;

ENTITY Waehrungsangabe;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Waehrungsangabe VALUES( 1, 'EURO' )
INSERT INTO Waehrungsangabe VALUES( 2, 'DM' )

   END_SQL
*)

ENTITY Waehrungsbetrag
SUBTYPE OF (OKSTRA_konzept_Objekt);
--- Attribute :
   Betrag                        : REAL;
   Waehrungsangabe               : Waehrungsangabe;
--- Relationen :
END_ENTITY;

ENTITY einfacher_Zeitraum
SUBTYPE OF (Zeitraum);
   (* ERBEN UP *)
--- Attribute :
--- Relationen :
   hat_Startdatum                : Startdatum;
   hat_Dauer                     : Dauer;
END_ENTITY;

ENTITY Startdatum
SUBTYPE OF (OKSTRA_konzept_Objekt);
--- Attribute :
   Jahr                          : OPTIONAL INTEGER;
   Monat_im_Jahr                 : OPTIONAL INTEGER;
   Woche_im_Jahr                 : OPTIONAL INTEGER;
   Tag_im_Monat                  : OPTIONAL INTEGER;
   vorwaerts_oder_rueckwaerts    : OPTIONAL BOOLEAN;
   Woche_im_Monat                : OPTIONAL INTEGER;
   Tag_in_der_Woche              : OPTIONAL INTEGER;
   Stunde_am_Tag                 : OPTIONAL INTEGER;
   Minute_in_der_Stunde          : OPTIONAL INTEGER;
   Sekunde_in_der_Minute         : OPTIONAL INTEGER;
--- Relationen :
INVERSE
   von_einfachem_Zeitraum        : SET [0:?] OF einfacher_Zeitraum
                                             FOR hat_Startdatum;
WHERE
   nur_Monat_oder_Woche          : NOT (EXISTS(Monat_im_Jahr)
                                    AND EXISTS(Woche_im_Jahr));
   (* BEDINGUNG ( Monat_im_Jahr IS NULL ) OR ( Woche_im_Jahr IS NULL ) *)
END_ENTITY;

ENTITY Dauer
SUBTYPE OF (OKSTRA_konzept_Objekt);
--- Attribute :
   Jahre                         : OPTIONAL INTEGER;
   Monate                        : OPTIONAL INTEGER;
   Wochen                        : OPTIONAL INTEGER;
   Tage                          : OPTIONAL INTEGER;
   Stunden                       : OPTIONAL INTEGER;
   Minuten                       : OPTIONAL INTEGER;
   Sekunden                      : OPTIONAL INTEGER;
--- Relationen :
INVERSE
   von_einfachem_Zeitraum        : SET [0:?] OF einfacher_Zeitraum
                                             FOR hat_Dauer;
END_ENTITY;

ENTITY komplexer_Zeitraum
SUBTYPE OF (Zeitraum);
   (* ERBEN UP *)
--- Attribute :
--- Relationen :
   hat_ersten_Zeitraum           : Zeitraum;
   hat_zweiten_Zeitraum          : Zeitraum;
   hat_Operator                  : Operator;
END_ENTITY;

ENTITY Operator;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(5) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(5);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Operator VALUES ('+','Vereinigung')
INSERT INTO Operator VALUES ('*','Durchschnitt')
INSERT INTO Operator VALUES ('-','Differenz')

   END_SQL
*)

ENTITY Zeitraum
ABSTRACT SUPERTYPE OF (ONEOF(einfacher_Zeitraum,komplexer_Zeitraum))
SUBTYPE OF (historischesOKSTRA_konzept_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
INVERSE
   erster_in                     : SET [0:?1] OF komplexer_Zeitraum
                                             FOR hat_ersten_Zeitraum;
   zweiter_in                    : SET [0:?1] OF komplexer_Zeitraum
                                             FOR hat_zweiten_Zeitraum;
END_ENTITY;

ENTITY Vorzeichen;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(5) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(5);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Vorzeichen VALUES ('+','Summe')
INSERT INTO Vorzeichen VALUES ('-','Differenz')

   END_SQL
*)

ENTITY Objekt_ID
SUBTYPE OF (OKSTRA_konzept_Objekt);
--- Attribute :
   ID                            : STRING;
   Namensraum_Verfahren          : STRING;
--- Relationen :
   INVERSE
   von_Objekt_mit_ID             : Objekt_mit_ID FOR hat_Objekt_ID;
END_ENTITY;

ENTITY Objekt_mit_ID
ABSTRACT SUPERTYPE OF (ONEOF(Bewuchs,Kreuzung_Strasse_Weg,Tierwechsel,Bauwerk,Teilbauwerk,
                       Sachverhalt,Info_Strasse,Bauwerk_Verkehrsstaerke,Durchfahrtshoehen,
                       Bauwerksbeschilderung,Bauwerksbelaege,Entwuerfe_und_Berechnungen,
                       Brueckenfeld_Stuetzung,Segment_Tunnel_Trogbauwerk,
                       Segment_Laermschutzbauwerk,Segment_Stuetzbauwerk,Pruefanweisungen,
                       durchgef_Pruefungen_Messungen,gegenw_dokum_Schaden,
                       gegenw_dokum_Bauwerkszustand,Schaden_abgeschl_Prfg,
                       abgeschlossene_Pruefung,gegenw_dokum_Empfehlung,Empfehlung_abgeschl_Prfg,
                       Prueffahrzeuge_Pruefgeraete,Anlagen_Bauwerksbuch,
                       Verwaltungsmassn_Sondervereinb,Bau_und_Erhaltungsmassnahme,
                       Kosten_fuer_Bau_Erh_und_Betr,Ausstattung,Schutzeinrichtungen,
                       Vorspannungen,Gruendungen,Erd_und_Felsanker,Lager,Fahrbahnuebergang,
                       Kappe,Brueckenseile_und_Kabel,Abdichtungen,statisches_System_Tragfaehigkt,
                       Baustoff_Bauwerk,Gestaltungen,Leitungen_an_Bauwerken,Verfuellungen,
                       Betonersatzsystem,Oberflaechenschutzsystem,Korrosionsschutzbeschichtungen,
                       Reaktionsharzgeb_Duennbelaege,Tunnelbeleuchtung,Tunnellueftung,
                       Tunnelsicherheit,Tunnel_Verkehrseinrichtungen,Tunnel_Zentrale_Anlagen,
                       Arbeitsstelle_an_Strassen))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
--- Relationen:
   hat_Objekt_ID                 : OPTIONAL SET [1:?] OF Objekt_ID;
--- Relationen:
END_ENTITY;

ENTITY Dokument
SUBTYPE OF (historisches_Objekt,Dokument_abstrakt);
--- Attribute :
   Kennzeichen_Aktenzeichen      : OPTIONAL STRING(30);
   URI                           : OPTIONAL STRING;  -- Angabe eines Aktenzeichens als URI: "urn:okstra:dok:[Aktenzeichen]"
   Seite                         : OPTIONAL INTEGER;
   verfuegt                      : OPTIONAL BOOLEAN;
   Datum                         : OPTIONAL Datum;
   von_Benutzer                  : OPTIONAL STRING(60);
   Wirksamkeitsdatum_Dokument    : OPTIONAL Datum;
   Inhalt                        : OPTIONAL BINARY;
   MIME_Type                     : OPTIONAL STRING;
   Text                          : OPTIONAL STRING(64);
--- Relationen :
   von_Strassenentwaesserung     : OPTIONAL SET [1:?] OF Strassenentwaesserung; (* D *)
   von_Leitung                   : OPTIONAL SET [1:?] OF Leitung; (* D *)
   ist_Grundlage_fuer_Ereignis   : OPTIONAL SET [1:?] OF Ereignis; (* D *)
   von_Kostenberechnung_nach_AKS : OPTIONAL SET [1:?] OF Kostenberechnung_nach_AKS; (* D *)
   von_Ausschr_u_Vergabe         : OPTIONAL SET [1:?] OF Ausschreibung_und_Vergabe; (* D *)
   von_Abrechnung                : OPTIONAL SET [1:?] OF Abrechnung; (* D *)
   von_ASB_Objekt                : OPTIONAL SET [1:?] OF ASB_Objekt; (* D *)
   ist_Netzknotenskizze_zu       : OPTIONAL SET [1:?] OF Netzknoten_abstrakt; (* D *)
   ist_Einmessskizze_zu          : OPTIONAL SET [1:?] OF Netzknoten_abstrakt; (* D *)
   ist_Verkehrszeichenplan_zu    : OPTIONAL SET [1:?] OF verkehrliche_Angaben_Arbeitsst; (* D *)
   ist_verkehrsrechtl_Anordn_zu  : OPTIONAL SET [1:?] OF verkehrliche_Angaben_Arbeitsst; (* D *)
END_ENTITY;

ENTITY Dokument_abstrakt
ABSTRACT SUPERTYPE OF (ONEOF(Dokument,Dokument_Symbol));
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Dokument_Symbol
SUBTYPE OF (Dokument_abstrakt);
--- Attribute :
   Kennung_Aktenzeichen          : OPTIONAL STRING(30);
   Kennung_URI                   : OPTIONAL      : STRING;
--- Relationen :
WHERE
   Aktenzeichen_oder_URI         : ( EXISTS(Kennung_Aktenzeichen) OR EXISTS(Kennung_URI) );
   (* BEDINGUNG ( ( Kennung_Aktenzeichen IS NOT NULL ) OR ( Kennung_URI IS NOT NULL ) ) *)
END_ENTITY;

ENTITY geometrische_Auspraegung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
--- Relationen:
   hat_Auspraegung_Punkt         : OPTIONAL SET [1:?] OF geometrische_Auspraegung_Punkt;
   hat_Auspraegung_Linie         : OPTIONAL SET [1:?] OF geometrische_Auspraegung_Linie;
   hat_Auspraegung_Flaeche       : OPTIONAL SET [1:?] OF geometrische_Auspraegung_Flaeche;
INVERSE
   von_Bewuchs                   : SET [0:?] OF Bewuchs FOR hat_Auspraegungen;
WHERE
   genau_eine_Auspraegung        : ( ( EXISTS(hat_Auspraegung_Punkt) AND
                                       NOT EXISTS(hat_Auspraegung_Linie) AND
                                       NOT EXISTS(hat_Auspraegung_Flaeche) ) OR
                                     ( NOT EXISTS(hat_Auspraegung_Punkt) AND
                                       EXISTS(hat_Auspraegung_Linie) AND
                                       NOT EXISTS(hat_Auspraegung_Flaeche) ) OR
                                     ( NOT EXISTS(hat_Auspraegung_Punkt) AND
                                       NOT EXISTS(hat_Auspraegung_Linie) AND
                                       EXISTS(hat_Auspraegung_Flaeche) ) );
END_ENTITY;

ENTITY geometrische_Auspraegung_Punkt
SUBTYPE OF (Punktobjekt_Modell);
--- Attribute:
--- Relationen:
INVERSE
   von_geometrischer_Auspraegung : SET [0:?] OF geometrische_Auspraegung
                                       FOR hat_Auspraegung_Punkt;
END_ENTITY;

ENTITY geometrische_Auspraegung_Linie
SUBTYPE OF (Linienobjekt_Modell);
--- Attribute:
--- Relationen:
INVERSE
   von_geometrischer_Auspraegung : SET [0:?] OF geometrische_Auspraegung
                                       FOR hat_Auspraegung_Linie;
END_ENTITY;

ENTITY geometrische_Auspraegung_Flaeche
SUBTYPE OF (Flaechenobjekt_Modell);
--- Attribute:
--- Relationen:
INVERSE
   von_geometrischer_Auspraegung : SET [0:?] OF geometrische_Auspraegung
                                       FOR hat_Auspraegung_Flaeche;
END_ENTITY;

ENTITY Sensor
SUPERTYPE OF (ONEOF(Fotostandpunkt))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Wirkungsrichtung_horizontal   : OPTIONAL Winkel;
   Wirkungsrichtung_vertikal     : OPTIONAL Winkel;
   Art                           : Art_Sensor;
   Typbezeichnung                : OPTIONAL STRING;
   Hoehe_ueber_Boden             : OPTIONAL Meter;
--- Relationen:
   hat_Sensorstandort            : Sensorstandort;
END_ENTITY;

ENTITY Art_Sensor;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : INTEGER;
   Langtext                      : STRING(30);
--- Relationen:
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_Sensor VALUES (1,'Fotokamera')
INSERT INTO Art_Sensor VALUES (2,'Videokamera')
INSERT INTO Art_Sensor VALUES (3,'Mikrofon')
INSERT INTO Art_Sensor VALUES (4,'Wärmebildkamera')

   END_SQL
*)

ENTITY Sensorstandort
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
--- Relationen:
   hat_Erfassungsqualitaet       : Erfassungsqualitaet;
   hat_Sensorstandpunkt          : OPTIONAL Sensorstandpunkt;
   hat_Sensorstandlinie          : OPTIONAL Sensorstandlinie;
INVERSE
   von_Sensor                    : SET [0:?] OF Sensor FOR hat_Sensorstandort;
WHERE
   entweder_Punkt_oder_Linie     : ( EXISTS(hat_Sensorstandpunkt) XOR
                                     EXISTS(hat_Sensorstandlinie) );
   (* BEDINGUNG ( hat_Sensorstandpunkt IS NOT NULL AND
                  hat_Sensorstandlinie IS NULL ) OR
                ( hat_Sensorstandpunkt IS NULL AND
                  hat_Sensorstandlinie IS NOT NULL ) *)
END_ENTITY;

ENTITY Sensorstandpunkt
SUBTYPE OF (Punktobjekt_Modell);
--- Attribute:
--- Relationen:
INVERSE
   von_Sensorstandort            : SET [0:?] OF Sensorstandort
                                       FOR hat_Sensorstandpunkt;
END_ENTITY;

ENTITY Sensorstandlinie
SUBTYPE OF (Linienobjekt_Modell);
--- Attribute:
--- Relationen:
INVERSE
   von_Sensorstandort            : SET [0:?] OF Sensorstandort
                                       FOR hat_Sensorstandlinie;
END_ENTITY;

ENTITY Foto
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   erstellt_von                  : OPTIONAL STRING;
   physikalische_Aufloesung      : OPTIONAL dpi;
   Farbspektrum                  : OPTIONAL Farbtiefe;
   Datei                         : OPTIONAL STRING;
   inhaltliche_Beschreibung      : OPTIONAL STRING;
   Startdatum                    : Startdatum;
   verwendetes_Verfahren         : OPTIONAL fotografisches_Verfahren;
   Aufbewahrungsort_Medium_analog: OPTIONAL STRING;
--- Relationen:
   hat_Fotostandpunkt            : OPTIONAL Fotostandpunkt;
END_ENTITY;

TYPE dpi = INTEGER;
END_TYPE;

TYPE Farbtiefe = INTEGER;
END_TYPE;

ENTITY fotografisches_Verfahren;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : INTEGER;
   Langtext                      : STRING(60);
--- Relationen:
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO fotografisches_Verfahren VALUES (1,'Digitalkamera')
INSERT INTO fotografisches_Verfahren VALUES (2,'Analogkamera, scannen des Papierabzuges')
INSERT INTO fotografisches_Verfahren VALUES (3,'Analogkamera, scannen des Dia-Positives')

   END_SQL
*)

ENTITY Fotostandpunkt
SUBTYPE OF (Sensor);
--- Attribute:
--- Relationen:
INVERSE
   von_Foto                      : SET [0:?] OF Foto FOR hat_Fotostandpunkt;
END_ENTITY;

TYPE Zustaendigkeit = STRING;
END_TYPE;

ENTITY Erfassungsqualitaet
SUBTYPE OF (OKSTRA_konzept_Objekt);
--- Attribute:
   Erfassung_Verfahren           : OPTIONAL Erfassung_Verfahren;
   Standardabweichung            : OPTIONAL Zentimeter;
--- Relationen:
END_ENTITY;

ENTITY Erfassung_Verfahren;
   (* KEY_NAME Kennung *)
   (* KEY_TYP INTEGER *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Erfassung_Verfahren VALUES (1,'photogrammetrisch')
INSERT INTO Erfassung_Verfahren VALUES (2,'photogrammetrisch mit Feldvergleich')
INSERT INTO Erfassung_Verfahren VALUES (3,'terrestrisch aufgemessen')
INSERT INTO Erfassung_Verfahren VALUES (4,'digitalisiert')
INSERT INTO Erfassung_Verfahren VALUES (5,'eingeschritten')
INSERT INTO Erfassung_Verfahren VALUES (6,'Übernahme aus Liegenschaftskarte')
INSERT INTO Erfassung_Verfahren VALUES (99,'sonstige')

   END_SQL
*)

ENTITY Bankverbindung
SUBTYPE OF (OKSTRA_konzept_Objekt);
--- Attribute:
   Kontonummer                   : STRING(16);
   Bankleitzahl                  : STRING(14);
   Bankname                      : OPTIONAL STRING(80);
--- Relationen:
END_ENTITY;

END_SCHEMA; -- Allgemeine_Objekte
SCHEMA Allgemeine_Geometrieobjekte;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Einführung von OKSTRA-Text gemäß Dokument N0068
Überarbeitung gemäß Dokument N0067

29.06.2004 - 1.004 (1.009)
Überarbeitung gemäß Dokument N0060

03.09.2003 - 1.003 (1.008)
Überarbeitung gemäß Dokument N0051

31.05.2002 - 1.002 (1.007)
Überarbeitung gemäß Dokument N0030

12.09.2001 - 1.001 (1.004)
Überarbeitung in Folge des Änderungsantrags A0006
ALKIS-Objekte in neues Schema Kataster verlegt

09.10.1999 - 1.000 (1.001)
Modellierung erstellt
*)

REFERENCE FROM Entwurf (DGM,allgemeine_Eigenschaften);

REFERENCE FROM Geometrieschema (Punktobjekt_Modell,Linienobjekt_Modell,
                                Flaechenobjekt_Modell);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Groesse,Winkel);OKSTRA_konzept_Objekt,
                                   OKSTRA_Schluesseltabelle,Groesse,Winkel);

ENTITY allgemeines_Punktobjekt
SUBTYPE OF (DGM_Punkt,allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
   hat_Symbol                    : OPTIONAL SET[1:?] OF Symbol;
END_ENTITY;

ENTITY Symbol
SUBTYPE OF (Punktobjekt_Modell);
--- Attribute :
   Symbolbedeutung               : STRING;  -- RAS-Verm-Namen als Schlüsseltab?
   Breite_links                  : Groesse;
   Breite_rechts                 : Groesse;
   Hoehe_oben                    : Groesse;
   Hoehe_unten                   : Groesse;
   Einheit                       : Einheit;
   Drehwinkel                    : Winkel;
--- Relationen :
INVERSE
   mit_Bezug_auf_allg_Punktobjekt: allgemeines_Punktobjekt FOR hat_Symbol;
END_ENTITY;

ENTITY Einheit;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING(4);
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Einheit VALUES (0,'Welt')
INSERT INTO Einheit VALUES (1,'mm')

   END_SQL
*)

ENTITY allgemeines_Linienobjekt
SUBTYPE OF (Linienobjekt_Modell,allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY allgemeines_Flaechenobjekt
SUBTYPE OF (Flaechenobjekt_Modell,allgemeine_Eigenschaften);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Dreieck
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Dreiecksnummer                : INTEGER;
   Dreiecksbedeutung             : OPTIONAL STRING;
--- Relationen :
   hat_Punkte                    : LIST[3:3] OF DGM_Punkt;
   hat_Seiteneigenschaften       : LIST[3:3] OF Seiteneigenschaft;
INVERSE
   in_DGM                        : DGM FOR hat_Dreiecke;
END_ENTITY;

ENTITY DGM_Punkt
SUPERTYPE OF (ONEOF(allgemeines_Punktobjekt))
SUBTYPE OF (Punktobjekt_Modell);
--- Attribute :
--- Relationen :
INVERSE
   in_Dreieck                    : SET[0:?] OF Dreieck FOR hat_Punkte;
END_ENTITY;

ENTITY Seiteneigenschaft;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING(13);
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Seiteneigenschaft VALUES (1,'normale Seite')
INSERT INTO Seiteneigenschaft VALUES (2,'Bruchlinie')
INSERT INTO Seiteneigenschaft VALUES (3,'Formlinie')

   END_SQL
*)

ENTITY Beschriftung
SUBTYPE OF (Punktobjekt_Modell);
--- Attribute :
   Text                          : STRING;
   Textbedeutung                 : STRING;
   Drehwinkel                    : Winkel;
--- Relationen :
   zu_Punktobjekt_Modell         : OPTIONAL Punktobjekt_Modell;
   hat_Textausgestaltung         : OPTIONAL Textausgestaltung;
END_ENTITY;

ENTITY Textausgestaltung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Breite                        : Groesse;
   Hoehe                         : Groesse;
   Einheit                       : Einheit;
   Schriftart                    : STRING;
   Schrifthoehe                  : Groesse;
   Schriftfarbe                  : RGB_Farbe;
   Kasten                        : BOOLEAN;
   Beschriftungsfahne            : OPTIONAL Beschriftungsfahne;
   vertikale_Ausrichtung         : vertikale_Ausrichtung;
   horizontale_Ausrichtung       : horizontale_Ausrichtung;
   Einfuegeposition              : Einfuegeposition;
--- Relationen :
INVERSE
   zu_Beschriftung               : SET[0:?] OF Beschriftung FOR hat_Textausgestaltung;
END_ENTITY;

ENTITY Einfuegeposition;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING(17);
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Einfuegeposition VALUES (1, 'Ecke oben links')
INSERT INTO Einfuegeposition VALUES (2, 'Mitte oben')
INSERT INTO Einfuegeposition VALUES (3, 'Ecke oben rechts')
INSERT INTO Einfuegeposition VALUES (4, 'Mitte links')
INSERT INTO Einfuegeposition VALUES (5, 'Mitte')
INSERT INTO Einfuegeposition VALUES (6, 'Mitte rechts')
INSERT INTO Einfuegeposition VALUES (7, 'Ecke unten links')
INSERT INTO Einfuegeposition VALUES (8, 'Mitte unten')
INSERT INTO Einfuegeposition VALUES (9, 'Ecke unten rechts')

   END_SQL
*)

ENTITY RGB_Farbe
SUBTYPE OF (OKSTRA_konzept_Objekt);
--- Attribute :
   Farbwert_rot                  : RGB_Farbwert;
   Farbwert_gruen                : RGB_Farbwert;
   Farbwert_blau                 : RGB_Farbwert;
--- Relationen :
END_ENTITY;

TYPE RGB_Farbwert=INTEGER;
WHERE
   RGB_Farbwert_sinnvoll         : {0<=SELF<=255};
END_TYPE;

ENTITY Beschriftungsfahne;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING(8);
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Beschriftungsfahne VALUES (1,'gerade')
INSERT INTO Beschriftungsfahne VALUES (2,'geknickt')

   END_SQL
*)

ENTITY vertikale_Ausrichtung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING(9);
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO vertikale_Ausrichtung VALUES (0,'zentriert')
INSERT INTO vertikale_Ausrichtung VALUES (1,'oben')
INSERT INTO vertikale_Ausrichtung VALUES (2,'unten')

   END_SQL
*)

ENTITY horizontale_Ausrichtung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING(13);
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO horizontale_Ausrichtung VALUES (0,'zentriert')
INSERT INTO horizontale_Ausrichtung VALUES (1,'linksbuendig')
INSERT INTO horizontale_Ausrichtung VALUES (2,'rechtsbuendig')

   END_SQL
*)

END_SCHEMA; -- Allgemeine_Geometrieobjekte
SCHEMA Grunderwerb;

(*
Historie:

02.08.2006 - 1.011
Ergänzung von RAS-Verm-Objekten gemäß N0071
Einführung OKSTRA-ID gemäß N0073
Einführung des Schemas Liegenschaftsverwaltung gemäß N0080

09.09.2005 - 1.010 (1.010)
Schema Arbeitsstelle_an_Strassen erstellt
Überarbeitung gemäß Dokument N0067

29.06.2004 - 1.006 (1.009)
Überarbeitung gemäß Dokument N0060

03.09.2003 - 1.005 (1.008)
Ergänzung von Flächengeometrie für Erwerbsflaeche
und Nutzungsart_Teilflaeche
Anbindung der Kompensationsmassnahme

31.05.2002 - 1.004 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

24.10.2001 - 1.003 (1.005)
Korrekturen in Schlüsseltabellen

12.09.2001 - 1.002 (1.004)
Flurstueck, Flur und Gemarkung in neues Schema Kataster verlegt

11.12.2000 - 1.001 (1.002)
Integration symbolischer Verweise für Verwaltungsbezirk
(Gemeindebezirk und Kreis_kreisfreie_Stadt);
Schlüssel-Felder in Schlüsseltabellen einheitlich
in 'Kennung' umbenannt

29.10.2000 - 1.000 (1.001)
Schema Grunderwerb in den OKSTRA integriert
*)

REFERENCE FROM Geometrieschema (Flaechenobjekt_Modell);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Datum,Quadratmeter,EuroOKSTRA_konzept_Objekt,
                                   OKSTRA_Schluesseltabelle,
                                   Datum,Quadratmeter,Euro,
                                   Bankverbindung,Waehrungsbetrag);

REFERENCE FROM Kataster (Flurstueck,Gemarkung);

REFERENCE FROM Oekologie (Kompensationsteilflaeche);

REFERENCE FROM Arbeitsstelle_an_Strassen (Status_der_Arbeitsstelle,Rolle_Arbeitsstelle);

REFERENCE FROM Topografie (Status_Eigenschaft);



ENTITY Nutzungsartflaeche_Basis
ABSTRACT SUPERTYPE OF (ONEOF(Nutzungsartflaeche,Nutzungsartteilflaeche))
SUBTYPE OF (Status_Eigenschaft,Flaechenobjekt_Modell);
--- Attribute :
   Teilflaeche                   : OPTIONAL Quadratmeter;
   Bodenwert                     : OPTIONAL Euro;
   Bodenklasse                   : OPTIONAL STRING(30);
   tatsaechliche_Nutzung         : OPTIONAL STRING;
   rechtliche_Nutzung            : OPTIONAL STRING;
--- Relationen :
   hat_Nutzungsart               : Nutzungsart;
END_ENTITY;

ENTITY Attribut_Flurstueck
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Attributname                  : STRING;
   Attributdatum                 : OPTIONAL Datum;
   Attributstatus                : Boolean;
   Attributtext                  : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Flurstueck                : Flurstueck FOR hat_Attribute;
END_ENTITY;

ENTITY Erwerbsflaeche
SUBTYPE OF (Flaechenobjekt_Modell);
--- Attribute :
   Erwerbsart                    : Erwerbsart;
   Erwerbsart_spezifisch         : OPTIONAL Erwerbsart_spezifisch;
   Erwerbszweck                  : OPTIONAL Erwerbszweck;
   GE_Massnahme                  : OPTIONAL GE_Massnahme;
   Bedarfsflaeche                : OPTIONAL Quadratmeter;
   GE_Plannummer                 : OPTIONAL STRING;
   laufende_Nummer_Flurstueck    : OPTIONAL STRING;
   laufende_Nummer_Teilflaeche   : OPTIONAL STRING;
   Bemerkung                     : OPTIONAL STRING;
--- Relationen :
   hat_Nutzungsart               : OPTIONAL Nutzungsart;
INVERSE
   in_Flurstueck                 : Flurstueck FOR hat_Erwerbsflaechen;
END_ENTITY;

ENTITY GEV_Ausgabespalte;Erwerbsart
   (* KEY_NAME Kennung *)
   Kennung                       : INTEGER;
   Beschreibung                  : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

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

   END_SQL
*)

ENTITY Erwerbsart;
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Erwerbsart                    : STRING;
   GEV_Ausgabespalte             : GEV_AusgabespalteSTRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

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

   END_SQL
*)

ENTITY Erwerbsart_spezifisch
SUBTYPE OF (OKSTRA_ObjektSchluesseltabelle);
--- Attribute :
   Kennung                       : STRING;
   Erwerbsart_spezifisch         : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

ENTITY Erwerbszweck;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Erwerbsart                    : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

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

   END_SQL
*)

ENTITY Nutzungsart
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Nutzungsartschluessel         : INTEGER;
   Kurztext                      : OPTIONAL STRING;
   Bezeichnung                   : STRING;
--- Relationen :
INVERSE
   von_Nutzungsartflaeche_Basis  : SET[0:?] OF Nutzungsartflaeche_Basis
                                      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;

ENTITY GE_Massnahme;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING;
   Massnahmetext                 : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

ENTITY Nutzungsartteilflaeche
SUBTYPE OF (Nutzungsartflaeche_Basis);
--- Attribute :
--- Relationen :
INVERSE
   von_Flurstueck                : Flurstueck FOR hat_Nutzungsartteilflaechen;
   zu_Kompensationsteilflaeche   : SET [0:?] OF Kompensationsteilflaeche
                                             FOR auf_Nutzungsartteilflaeche;
END_ENTITY;

ENTITY Nutzungsartflaeche
SUBTYPE OF (Nutzungsartflaeche_Basis);
--- Attribute :
--- Relationen :
INVERSE
   liegt_auf_Flurstueck          : SET [0:?] OF Flurstueck FOR liegt_auf_Nutzungsartflaeche;
END_ENTITY;

ENTITY Belastung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Abteilung                     : STRING;
   laufende_Nummer               : OPTIONAL STRING;
   Belastungstext                : OPTIONAL STRING;
   Erlaeuterungen                : OPTIONAL STRING;
   Eintragung                    : OPTIONAL Datum;
   Abloesung                     : OPTIONAL Datum;
   Bemerkung                     : OPTIONAL STRING;
--- 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;

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

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

ENTITY Verhaeltnis;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Verhaeltnis                   : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Verhaeltnis VALUES ('V','Verfügungsberechtigter')
INSERT INTO Verhaeltnis VALUES ('A','Alteigentümer')

   END_SQL
*)

ENTITY Flurstueck_Grundbuch
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   GB_Anteil_Zaehler             : REAL;
   GB_Anteil_Nenner              : INTEGER;
   Eigentumsart                  : OPTIONAL Eigentumsart;
   Bestandsnummer                : OPTIONAL STRING;
   Bemerkung                     : OPTIONAL STRING;
--- Relationen :
   Flurstueck                    : OPTIONAL Flurstueck;
   Grundbuch                     : OPTIONAL Grundbuch;
END_ENTITY;

ENTITY Eigentumsart;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Eigentumsart                  : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Eigentumsart VALUES ('N','normales Eigentum, Stockwerkseigentum')
INSERT INTO Eigentumsart VALUES ('K','im Grundbuch nicht gebuchtes Eigentum')
INSERT INTO Eigentumsart VALUES ('E','Erbbaurecht')
INSERT INTO Eigentumsart VALUES ('U','Untererbbaurecht')
INSERT INTO Eigentumsart VALUES ('B','Wohnungs-(Teil-)Erbbaurecht')
INSERT INTO Eigentumsart VALUES ('I','Wohnungs-/Teiluntererbbaurecht')
INSERT INTO Eigentumsart VALUES ('C','nach §3 Abs. 3 GBO aufgeteiltes Erbbaurecht')
INSERT INTO Eigentumsart VALUES ('D','nach §3 Abs. 3 GBO aufgeteiltes normales Eigentum')
INSERT INTO Eigentumsart VALUES ('W','Wohnungs-(Teil-)Eigentum')
INSERT INTO Eigentumsart VALUES ('X','Buchungsvorschlag (Veränderungsnachweis wird durch Grundbuchamt vollzogen)')
INSERT INTO Eigentumsart VALUES ('Y','Buchungsvorschlag (Veränderungsnachweis wird durch Vermessungsamt vollzogen)')
INSERT INTO Eigentumsart VALUES ('F','Fischereirecht')

   END_SQL
*)

ENTITY Grundbuch
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Band                          : OPTIONAL STRING;
   Blatt                         : STRING;
   Bemerkung                     : OPTIONAL STRING;
--- 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;

ENTITY Paechter_Mieter
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Pachtbeginn                   : OPTIONAL Datum;
   Pachtende                     : OPTIONAL Datum;
   Pachtzins                     : OPTIONAL Euro;
   Pachtflaeche                  : OPTIONAL Quadratmeter;
   Vertragsart                   : OPTIONAL Vertragsart;
   Bemerkung                     : OPTIONAL STRING;
   Erstzahldatum                 : OPTIONAL Datum;
   Bankeinzug                    : OPTIONAL BOOLEAN;
   Kuendigungsdatum              : OPTIONAL Datum;
   Abschlussdatum                : OPTIONAL Datum;
   Pachtart                      : OPTIONAL Pachtart;
   Anordnungsart                 : OPTIONAL Anordnungsart;
   Verlaengerung                 : OPTIONAL BOOLEAN;
   Marktgaengigkeitspruefung     : OPTIONAL Datum;
   Ortspachtzins                 : OPTIONAL Waehrungsbetrag;
   Geloescht                     : OPTIONAL BOOLEAN;
--- Relationen :
   von_Flurstueck                : OPTIONAL Flurstueck;
   zu_Grundbuch                  : OPTIONAL Grundbuch;
   ist_Person                    : OPTIONAL Person;
   hat_Nutzungsart               : OPTIONAL Nutzungsart;
END_ENTITY;

ENTITY Vertragsart;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Vertragsart                   : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Vertragsart VALUES ('s','schriftlich')
INSERT INTO Vertragsart VALUES ('m','mündlich')

   END_SQL
*)

ENTITY Pachtart;
   (* KEY_NAME Kennung *)
   (* KEY_TYP INTEGER *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Pachtart VALUES (0,'Verpachtung')
INSERT INTO Pachtart VALUES (1,'Anpachtung')
INSERT INTO Pachtart VALUES (2,'Nutzungsüberlassung')
INSERT INTO Pachtart VALUES (3,'Pflegevereinbarung')

   END_SQL
*)

ENTITY Anordnungsart;
   (* KEY_NAME Kennung *)
   (* KEY_TYP INTEGER *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Anordnungsart VALUES (0,'Daueranordnung')
INSERT INTO Anordnungsart VALUES (1,'Einzelanordnung')

*)

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

ENTITY Eigentumsverhaeltnis;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Eigentumsverhaeltnis          : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Eigentumsverhaeltnis VALUES ('A','Alleineigentümer')
INSERT INTO Eigentumsverhaeltnis VALUES ('M','Miteigentümer')
INSERT INTO Eigentumsverhaeltnis VALUES ('U','Ungeteilte Gemeinschaft')
INSERT INTO Eigentumsverhaeltnis VALUES ('G','Geteilte Gemeinschaft')

   END_SQL
*)

ENTITY Person
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Personenklasse                : OPTIONAL Personenklasse;
   Titel                         : OPTIONAL STRING;
   Name                          : STRING;
   Vorname                       : OPTIONAL STRING;
   Strasse                       : OPTIONAL STRING;
   Plz                           : OPTIONAL STRING;
   Ort                           : OPTIONAL STRING;
   Land                          : OPTIONAL Land;
   Firma                         : OPTIONAL STRING;
   Abteilung                     : OPTIONAL STRING;
   Geburtsdatum                  : OPTIONAL Datum;
   Geburtsname                   : OPTIONAL STRING;
   Anrede                        : OPTIONAL STRING;
   Telefon                       : OPTIONAL STRING;
   Telefax                       : OPTIONAL STRING;
   Bemerkung                     : OPTIONAL STRING;
   Internet                      : OPTIONAL STRING(50);
   Bankverbindung                : OPTIONAL Bankverbindung;
--- 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;
   hat_Stat_Arbeitsst_erfasst    : SET[0:?] OF Status_der_Arbeitsstelle
                                            FOR erfasst_von_Person;
   zu_Rolle_Arbeitsstelle        : SET[0:?] OF Rolle_Arbeitsstelle
                                            FOR hat_Person;
END_ENTITY;

ENTITY Land
SUBTYPE OF (OKSTRA_konzept_Objekt);
--- Attribute :
   postalischer_Code             : STRING;
   Land                          : STRING;
END_ENTITY;

ENTITY Personenklasse;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Personenklasse                : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

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

   END_SQL
*)

END_SCHEMA; -- Grunderwerb
SCHEMA Vermessungspunkt;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Formale Versionierung

29.06.2004 - 1.004 (1.009)
Kürzung von Bezeichnern (SQL)

03.09.2003 - 1.003 (1.008)
Korrektur der historischen Gültigkeitsdaten (SQL)

31.05.2002 - 1.002 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

24.10.2001 - 1.001 (1.005)
Korrekturen in Schlüsseltabellen

12.09.2001 - 1.000 (1.004)
Schema Vermessungspunkt in den OKSTRA aufgenommen
*)

REFERENCE FROM Administration (Verwaltungsbezirk_abstrakt);

REFERENCE FROM Geometrieschema (Punktobjekt_Modell);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Datum,UhrzeitOKSTRA_konzept_Objekt,
                                   OKSTRA_Schluesseltabelle,Datum,Uhrzeit,
                                   Jahr,Meter,Zeitraum,Winkel);

REFERENCE FROM Kataster (Gemarkung,Grenzpunkt,ALKIS_Objekt);

ENTITY Vermessungspunkt
ABSTRACT SUPERTYPE OF (ONEOF(Festpunkt,Referenzstationspunkt))
SUBTYPE OF (historisches_Objekt);
   (* ARTEN J *)
--- Attribute :
   Name_Lage                     : OPTIONAL STRING;
   interne_Bemerkungen           : OPTIONAL STRING;
   Nutzerspezifische_Bemerkungen : OPTIONAL STRING;
   letzte_oertliche_Ueberpruefung: OPTIONAL Datum;
   Befund                        : OPTIONAL STRING;
   historische_Unterlagen        : OPTIONAL SET [1:?] OF STRING;
--- Relationen :
   hat_Punktvermarkung           : OPTIONAL Punktvermarkung;
--- Relationen :
   hat_Punktort                  : SET [1:?] OF Punktort;
   hat_Hoehe                     : OPTIONAL SET [1:?] OF Hoehe;
   hat_Skizze                    : OPTIONAL SET [1:?] OF Skizze;
   liegt_in_Bundesland           : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
   hat_weiteren_Punkt            : OPTIONAL SET [1:?] OF Vermessungspunkt;
INVERSE
   ist_weiterer_Punkt            : SET [0:?] OF Vermessungspunkt FOR hat_weiteren_Punkt;
   ist_Grenzpunkt                : SET [0:?] OF Grenzpunkt FOR ist_Vermessungspunkt;
END_ENTITY;

ENTITY Punktvermarkung;
   (* KONZEPTUELL J *)
SUBTYPE OF (OKSTRA_konzept_Objekt);
--- Attribute :
   Hoehe_vom_Erdboden            : REAL;
   Art_der_Vermarkung            : OPTIONAL Art_der_Vermarkung;
   Zustand_der_Vermarkung        : OPTIONAL SET [1:?] OF STRING;
--- Relationen :
INVERSE
   von_Vermessungspunkt          : SET [0:?] OF Vermessungspunkt
                                            FOR hat_Punktvermarkung;
END_ENTITY;

ENTITY Art_der_Vermarkung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_der_Vermarkung VALUES (1000,'Höchste Stelle (Oberfläche) der Vermarkung, Mitte (Zentrum)')
INSERT INTO Art_der_Vermarkung VALUES (2000,'TP-Platte, Oberfläche, Mitte')
INSERT INTO Art_der_Vermarkung VALUES (2100,'TP-Pfeiler, Oberfläche, Mitte')
INSERT INTO Art_der_Vermarkung VALUES (3000,'Niv-Pfeilerbolzen, höchste Stelle des Bolzens')
INSERT INTO Art_der_Vermarkung VALUES (3100,'Niv-Pfeilerbolzen, Pfeileroberfläche')

   END_SQL
*)

ENTITY Punktort
SUBTYPE OF (Punktobjekt_Modell);
--- Attribute :
   Liegenschaftskarte            : OPTIONAL BOOLEAN;
   Koordinatenstatus             : Koordinatenstatus;
   Ueberpruefungsdatum           : OPTIONAL Datum;
   Hinweise                      : OPTIONAL STRING;
--- Relationen :
   hat_Qualitaetsangaben         : OPTIONAL Qualitaetsangaben_Punktort;
INVERSE
   stellt_Vermessungspunkt_dar   : SET [1:?] OF Vermessungspunkt
                                            FOR hat_Punktort;
END_ENTITY;

ENTITY Koordinatenstatus;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Koordinatenstatus VALUES (1000,'amtliche Koordinaten (im amtlichen Koordinatensystem und derzeit gültig)')
INSERT INTO Koordinatenstatus VALUES (3000,'vorläufige Koordinaten')
INSERT INTO Koordinatenstatus VALUES (4000,'nicht amtlich eingeführte Koordinaten')
INSERT INTO Koordinatenstatus VALUES (5000,'historische (nicht mehr amtliche) Koordinaten')
INSERT INTO Koordinatenstatus VALUES (5100,'Koordinaten, die sich als fehlerhaft herausgestellt haben')

   END_SQL
*)

ENTITY Qualitaetsangaben_Punktort
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Erhebungsstelle_Pos_2D_SArt   : OPTIONAL STRING;
   Erhebungsstelle_Pos_2D        : OPTIONAL STRING;
   Erhebungsstelle_Pos_Hoehe_SArt: OPTIONAL STRING;
   Erhebungsstelle_Pos_Hoehe     : OPTIONAL STRING;
   Erhebungsstelle_Pos_3D_SArt   : OPTIONAL STRING;
   Erhebungsstelle_Pos_3D        : OPTIONAL STRING;
   Datenerhebung_Pos_2D          : OPTIONAL Datenerhebung_Pos_2D;
   Datenerhebung_Pos_Hoehe       : OPTIONAL Datenerhebung_Pos_Hoehe;
   Datenerhebung_Pos_3D          : OPTIONAL Datenerhebung_Pos_3D;
   Berechnungsdatum_Pos_2D       : OPTIONAL Datum;
   Berechnungsdatum_Pos_Hoehe    : OPTIONAL Datum;
   Berechnungsdatum_Pos_3D       : OPTIONAL Datum;
   Bestimmungsdatum_Pos_2D       : OPTIONAL Datum;
   Bestimmungsdatum_Pos_Hoehe    : OPTIONAL Datum;
   Bestimmungsdatum_Pos_3D       : OPTIONAL Datum;
   Genauigkeit_Pos_2D            : OPTIONAL Genauigkeit_Pos_2D;
   Genauigkeit_Pos_Hoehe         : OPTIONAL Genauigkeit_Pos_Hoehe;
   Genauigkeit_Pos_3D            : OPTIONAL Genauigkeit_Pos_3D;
   Vertrauenswuerdigk_Pos_2D     : OPTIONAL Vertrauenswuerdigk_Pos_2D;
   Vertrauenswuerdigk_Pos_Hoehe  : OPTIONAL Vertrauenswuerdigk_Pos_Hoehe;
   Vertrauenswuerdigk_Pos_3D     : OPTIONAL Vertrauenswuerdigk_Pos_3D;
--- Relationen :
   Erhebungsstelle_Pos_2D_Land   : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
   Erhebungsstelle_Pos_Hoehe_Land: OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
   Erhebungsstelle_Pos_3D_Land   : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
INVERSE
   zu_Punktort                   : SET [0:?] OF Punktort
                                            FOR hat_Qualitaetsangaben;
END_ENTITY;

ENTITY Datenerhebung_Pos_2D;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Datenerhebung_Pos_2D VALUES (0100,'Aus GPS-Messung')
INSERT INTO Datenerhebung_Pos_2D VALUES (0200,'Aus trigonometrischer Messung im TP-Netz')
INSERT INTO Datenerhebung_Pos_2D VALUES (0210,'Aus lokaler trigonometrischer Messung (innerhalb einer Punktgruppe)')
INSERT INTO Datenerhebung_Pos_2D VALUES (1000,'Aus Katastervermessung ermittelt')
INSERT INTO Datenerhebung_Pos_2D VALUES (1010,'Aus Katastervermessung mit höchster Lagegenauigkeit (NW)')
INSERT INTO Datenerhebung_Pos_2D VALUES (1020,'Aus Katastervermessung mit hoher Lagegenauigkeit (NW)')
INSERT INTO Datenerhebung_Pos_2D VALUES (1030,'Aus Katastervermessung mit mittlerer Lagegenauigkeit (NW)')
INSERT INTO Datenerhebung_Pos_2D VALUES (1040,'Aus Katastervermessung mit unzureichender Lagegenauigkeit (NW)')
INSERT INTO Datenerhebung_Pos_2D VALUES (1100,'Aufgrund Anforderungen mit Netzanschluss ermittelt')
INSERT INTO Datenerhebung_Pos_2D VALUES (1200,'Aufgrund Anforderungen mit Bezug zur Flurstücksgrenze ermittelt')
INSERT INTO Datenerhebung_Pos_2D VALUES (1300,'Aufgrund Anforderungen des LiegVermErlasses ermittelt (NI)')
INSERT INTO Datenerhebung_Pos_2D VALUES (1400,'Aufgrund Anforderungen des Fortführungserlasses II ermittelt (NI)')
INSERT INTO Datenerhebung_Pos_2D VALUES (1500,'Aufgrund Anforderungen älterer Vorschriften ermittelt (NI)')
INSERT INTO Datenerhebung_Pos_2D VALUES (1600,'Auf einheitlichem und eindeutigem Raumbezug basierend (E-Koord.) (BW)')
INSERT INTO Datenerhebung_Pos_2D VALUES (1610,'Auf bislang einheitlichem Raumbezug basierend ermittelt (B-Koord.) (BW)')
INSERT INTO Datenerhebung_Pos_2D VALUES (1620,'Auf früher gültigem Raumbezug basierend ermittelt (T-Koord.) (BW)')
INSERT INTO Datenerhebung_Pos_2D VALUES (1700,'Aufgrund Anforderungen des LiegVermErlasses LSA (LSA)')
INSERT INTO Datenerhebung_Pos_2D VALUES (1710,'Aufgrund Anforderungen der Anleitung für die Ausführung der Neuvermessungen, 1953, DDR (LSA)')
INSERT INTO Datenerhebung_Pos_2D VALUES (1720,'Aufgrund der Liegenschaftsvermessungsordnung 112/82, DDR (LSA)')
INSERT INTO Datenerhebung_Pos_2D VALUES (1800,'Aus Koordinatentransformation ermittelt')
INSERT INTO Datenerhebung_Pos_2D VALUES (1900,'Aus sonstiger Vermessung ermittelt')
INSERT INTO Datenerhebung_Pos_2D VALUES (2000,'Aus Luftbildmessung oder Fernerkundungsdaten ermittelt')
INSERT INTO Datenerhebung_Pos_2D VALUES (3000,'Aus Netzvermessung ermittelt')
INSERT INTO Datenerhebung_Pos_2D VALUES (3100,'Aufgrund Anforderungen des Festpunktfelderlasses ermittelt (NI,ST)')
INSERT INTO Datenerhebung_Pos_2D VALUES (3200,'Aufgrund Anforderungen des Polygonpunktfelderlasses ermittelt (NI)')
INSERT INTO Datenerhebung_Pos_2D VALUES (3300,'Aus Polygonierungsmessung')
INSERT INTO Datenerhebung_Pos_2D VALUES (4000,'Aus Katasterunterlagen und Karten für graphische Zwecke ermittelt')
INSERT INTO Datenerhebung_Pos_2D VALUES (4100,'Aus Katasterzahlen für graphische Zwecke ermittelt')
INSERT INTO Datenerhebung_Pos_2D VALUES (4200,'Aus Katasterkarten digitalisiert')
INSERT INTO Datenerhebung_Pos_2D VALUES (4210,'Kartenmaßstab M >= 1:1000')
INSERT INTO Datenerhebung_Pos_2D VALUES (4220,'Kartenmaßstab 1:1000 > M > 1:2000')
INSERT INTO Datenerhebung_Pos_2D VALUES (4230,'Kartenmaßstab 1:2000 > M > 1:3000')
INSERT INTO Datenerhebung_Pos_2D VALUES (4240,'Kartenmaßstab 1:3000 > M > 1:5000')
INSERT INTO Datenerhebung_Pos_2D VALUES (4250,'Kartenmaßstab 1:5000 > M')
INSERT INTO Datenerhebung_Pos_2D VALUES (4260,'Mit sonstigen geometrischen Bedingungen und/oder Homogenisierung (M >= 1:1000)')
INSERT INTO Datenerhebung_Pos_2D VALUES (4270,'Mit Berechnung oder Abstandsbedingung (M >= 1:1000)')
INSERT INTO Datenerhebung_Pos_2D VALUES (4280,'Mit sonstigen geometrischen Bedingungen und/oder Homogenisierung (M < 1:1000)')
INSERT INTO Datenerhebung_Pos_2D VALUES (4290,'Mit Berechnung oder Abstandsbedingungen (M < 1:1000)')
INSERT INTO Datenerhebung_Pos_2D VALUES (4300,'Aus sonstigen Unterlagen digitalisiert')
INSERT INTO Datenerhebung_Pos_2D VALUES (4310,'Kartenmaßstab M >= 1:1000')
INSERT INTO Datenerhebung_Pos_2D VALUES (4320,'Kartenmaßstab 1:1000 > M >= 1:2000')
INSERT INTO Datenerhebung_Pos_2D VALUES (4330,'Kartenmaßstab 1:2000 > M >= 1:3000')
INSERT INTO Datenerhebung_Pos_2D VALUES (4340,'Kartenmaßstab 1:3000 > M >= 1:5000')
INSERT INTO Datenerhebung_Pos_2D VALUES (4350,'Kartenmaßstab M >= 1:5000')
INSERT INTO Datenerhebung_Pos_2D VALUES (4360,'Mit sonstigen geometrischen Bedingungen und/oder Homogenisierung (M >= 1:1000)')
INSERT INTO Datenerhebung_Pos_2D VALUES (4370,'Mit Berechnung oder Abstandsbedingung (M >= 1:1000)')
INSERT INTO Datenerhebung_Pos_2D VALUES (4380,'Mit sonstigen geometrischen Bedingungen und/oder Homogenisierung (M < 1:1000)')
INSERT INTO Datenerhebung_Pos_2D VALUES (4390,'Mit Berechnung oder Abstandsbedingungen (M < 1:1000)')
INSERT INTO Datenerhebung_Pos_2D VALUES (9998,'Nach Quellenlage nicht zu spezifizieren')

   END_SQL
*)

ENTITY Datenerhebung_Pos_Hoehe;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Datenerhebung_Pos_Hoehe VALUES (1000,'Aus Nivellement')
INSERT INTO Datenerhebung_Pos_Hoehe VALUES (2000,'Aus satellitengeodätischer Messung')
INSERT INTO Datenerhebung_Pos_Hoehe VALUES (3000,'Aus trigonometrischer Messung')
INSERT INTO Datenerhebung_Pos_Hoehe VALUES (4000,'Aus analoger Unterlage abgeleitet')

   END_SQL
*)

ENTITY Datenerhebung_Pos_3D;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Datenerhebung_Pos_3D VALUES (1000,'Höchste Positionsgenauigkeit')
INSERT INTO Datenerhebung_Pos_3D VALUES (2000,'Hohe Positionsgenauigkeit')
INSERT INTO Datenerhebung_Pos_3D VALUES (3000,'Mittlere Positionsgenauigkeit')
INSERT INTO Datenerhebung_Pos_3D VALUES (9998,'Nach Quellenlage nicht zu spezifizieren')

   END_SQL
*)

ENTITY Genauigkeit_Pos_2D;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Genauigkeit_Pos_2D VALUES (1200,'Standardabweichung SL <= 3 cm')
INSERT INTO Genauigkeit_Pos_2D VALUES (1210,'Standardabweichung SL <= 1 cm')
INSERT INTO Genauigkeit_Pos_2D VALUES (1220,'Standardabweichung 1 cm < SL <= 3 cm')
INSERT INTO Genauigkeit_Pos_2D VALUES (1300,'Standardabweichung 3 cm < SL <= 10 cm')
INSERT INTO Genauigkeit_Pos_2D VALUES (1310,'Standardabweichung 3 cm < SL <= 6 cm')
INSERT INTO Genauigkeit_Pos_2D VALUES (1320,'Standardabweichung 6 cm < SL <= 10 cm')
INSERT INTO Genauigkeit_Pos_2D VALUES (1400,'Standardabweichung 10 cm < SL <= 30 cm')
INSERT INTO Genauigkeit_Pos_2D VALUES (1500,'Standardabweichung 30 cm < SL <= 60 cm')
INSERT INTO Genauigkeit_Pos_2D VALUES (1700,'Standardabweichung 60 cm < SL <= 500 cm')
INSERT INTO Genauigkeit_Pos_2D VALUES (1800,'Standardabweichung SL > 500 cm')
INSERT INTO Genauigkeit_Pos_2D VALUES (9998,'Standardabweichung nicht untersucht')

   END_SQL
*)

ENTITY Genauigkeit_Pos_Hoehe;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Genauigkeit_Pos_Hoehe VALUES (1100,'Standardabweichung SH <= 1 cm')
INSERT INTO Genauigkeit_Pos_Hoehe VALUES (1200,'Standardabweichung 1 cm < SH <= 3 cm')
INSERT INTO Genauigkeit_Pos_Hoehe VALUES (1300,'Standardabweichung 3 cm < SH <= 10 cm')
INSERT INTO Genauigkeit_Pos_Hoehe VALUES (1600,'Standardabweichung 10 cm < SH <= 100 cm')
INSERT INTO Genauigkeit_Pos_Hoehe VALUES (1900,'Standardabweichung SH > 100 cm')
INSERT INTO Genauigkeit_Pos_Hoehe VALUES (9998,'Standardabweichung nicht untersucht')

   END_SQL
*)

ENTITY Genauigkeit_Pos_3D;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Genauigkeit_Pos_3D VALUES (1200,'Standardabweichung SP <= 3 cm')
INSERT INTO Genauigkeit_Pos_3D VALUES (1210,'Standardabweichung SP <= 1 cm')
INSERT INTO Genauigkeit_Pos_3D VALUES (1220,'Standardabweichung 1 cm < SP <= 3 cm')
INSERT INTO Genauigkeit_Pos_3D VALUES (1300,'Standardabweichung 3 cm < SP <= 10 cm')
INSERT INTO Genauigkeit_Pos_3D VALUES (1310,'Standardabweichung 3 cm < SP <= 6 cm')
INSERT INTO Genauigkeit_Pos_3D VALUES (1320,'Standardabweichung 6 cm < SP <= 10 cm')
INSERT INTO Genauigkeit_Pos_3D VALUES (1400,'Standardabweichung 10 cm < SP <= 30 cm')
INSERT INTO Genauigkeit_Pos_3D VALUES (1500,'Standardabweichung 30 cm < SP <= 60 cm')
INSERT INTO Genauigkeit_Pos_3D VALUES (1700,'Standardabweichung 60 cm < SP <= 500 cm')
INSERT INTO Genauigkeit_Pos_3D VALUES (1800,'Standardabweichung SP > 500 cm')
INSERT INTO Genauigkeit_Pos_3D VALUES (9998,'Standardabweichung nicht untersucht')

   END_SQL
*)

ENTITY Vertrauenswuerdigk_Pos_2D;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Vertrauenswuerdigk_Pos_2D VALUES (1100,'Ausgleichung')
INSERT INTO Vertrauenswuerdigk_Pos_2D VALUES (1200,'Berechnung')
INSERT INTO Vertrauenswuerdigk_Pos_2D VALUES (1300,'Bestimmungsverfahren')
INSERT INTO Vertrauenswuerdigk_Pos_2D VALUES (1400,'ohne Kontrollen')
INSERT INTO Vertrauenswuerdigk_Pos_2D VALUES (9998,'nicht untersucht')

   END_SQL
*)

ENTITY Vertrauenswuerdigk_Pos_Hoehe;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Vertrauenswuerdigk_Pos_Hoehe VALUES (1100,'Ausgleichung')
INSERT INTO Vertrauenswuerdigk_Pos_Hoehe VALUES (1200,'Berechnung')
INSERT INTO Vertrauenswuerdigk_Pos_Hoehe VALUES (1300,'Bestimmungsverfahren')
INSERT INTO Vertrauenswuerdigk_Pos_Hoehe VALUES (1400,'ohne Kontrollen')
INSERT INTO Vertrauenswuerdigk_Pos_Hoehe VALUES (9998,'nicht untersucht')

   END_SQL
*)

ENTITY Vertrauenswuerdigk_Pos_3D;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Vertrauenswuerdigk_Pos_3D VALUES (1100,'Ausgleichung')
INSERT INTO Vertrauenswuerdigk_Pos_3D VALUES (1200,'Berechnung')
INSERT INTO Vertrauenswuerdigk_Pos_3D VALUES (1300,'Bestimmungsverfahren')
INSERT INTO Vertrauenswuerdigk_Pos_3D VALUES (1400,'ohne Kontrollen')
INSERT INTO Vertrauenswuerdigk_Pos_3D VALUES (9998,'nicht untersucht')

   END_SQL
*)

ENTITY Hoehe
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Hoehenwert                    : REAL;
   Hoehensystem                  : Hoehensystem;
   Hoehenstatus                  : OPTIONAL Hoehenstatus;
   Ueberpruefungsdatum           : OPTIONAL Datum;
   Hinweise                      : OPTIONAL STRING;
--- Relationen :
   hat_Qualitaetsangaben         : OPTIONAL Qualitaetsangaben_Hoehe;
INVERSE
   zu_Vermessungspunkt           : SET [1:?] OF Vermessungspunkt FOR hat_Hoehe;
END_ENTITY;

ENTITY Hoehensystem;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Hoehensystem VALUES (1000,'Höhe im System des DHHN 12')
INSERT INTO Hoehensystem VALUES (1001,'Höhe im "Horizont 71" (BW)')
INSERT INTO Hoehensystem VALUES (1400,'Normalorthometrische Höhe im System des DHHN 85')
INSERT INTO Hoehensystem VALUES (1500,'Normalhöhe im System des SNN 76')
INSERT INTO Hoehensystem VALUES (1560,'Normalhöhe im System des SNN 56')
INSERT INTO Hoehensystem VALUES (1600,'Normalhöhe im System des DHHN 92')
INSERT INTO Hoehensystem VALUES (8000,'Höhe im Nordseeküstennivellement I')
INSERT INTO Hoehensystem VALUES (8100,'Höhe im Nordseeküstennivellement II')
INSERT INTO Hoehensystem VALUES (8200,'Normalorthometrische Höhe im Nivellementnetz 1960 (Westblock)')
INSERT INTO Hoehensystem VALUES (8300,'Höhe im Ostseeküstennivellement')
INSERT INTO Hoehensystem VALUES (9000,'Höhe im "alten System" der preußischen Landesaufnahme')
INSERT INTO Hoehensystem VALUES (9010,'Höhe im "vorläufigen System" in Bayern')

   END_SQL
*)

ENTITY Hoehenstatus;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Hoehenstatus VALUES (1000,'amtliche Höhe (im amtlichen Höhensystem und derzeit gültig)')
INSERT INTO Hoehenstatus VALUES (3000,'vorläufige Höhe')
INSERT INTO Hoehenstatus VALUES (4000,'nicht amtlich eingeführte Höhe')
INSERT INTO Hoehenstatus VALUES (5000,'historische (nicht mehr amtliche) Höhe')
INSERT INTO Hoehenstatus VALUES (5100,'Höhe, die sich als fehlerhaft herausgestellt hat')

   END_SQL
*)

ENTITY Qualitaetsangaben_Hoehe
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Erhebungsstelle_Stellenart    : OPTIONAL STRING;
   Erhebungsstelle               : OPTIONAL STRING;
   Datenerhebung_Hoehe           : OPTIONAL Datenerhebung_Hoehe;
   Berechnungsdatum              : OPTIONAL Datum;
   Messjahr                      : OPTIONAL Jahr;
   Genauigkeit_Hoehe             : OPTIONAL Genauigkeit_Hoehe;
--- Relationen :
   Erhebungsstelle_Land          : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
INVERSE
   zu_Hoehe                      : SET [0:?] OF Hoehe FOR hat_Qualitaetsangaben;
END_ENTITY;

ENTITY Datenerhebung_Hoehe;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Datenerhebung_Hoehe VALUES (1000,'Nivellement')
INSERT INTO Datenerhebung_Hoehe VALUES (2000,'Trigonometrische Messung')
INSERT INTO Datenerhebung_Hoehe VALUES (5000,'Transformation oder näherungsweise Berechnung')
INSERT INTO Datenerhebung_Hoehe VALUES (6000,'Auswertung von Luftbildern')
INSERT INTO Datenerhebung_Hoehe VALUES (8000,'GPS-Messung und Addition einer Undulation')
INSERT INTO Datenerhebung_Hoehe VALUES (9998,'Methode unbekannt')

   END_SQL
*)

ENTITY Genauigkeit_Hoehe;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Genauigkeit_Hoehe VALUES (1110,'Standardabweichung SH <= 2 mm')
INSERT INTO Genauigkeit_Hoehe VALUES (1120,'Standardabweichung 2 mm < SH <= 5 mm')
INSERT INTO Genauigkeit_Hoehe VALUES (1130,'Standardabweichung 5 mm < SH <= 1 cm')
INSERT INTO Genauigkeit_Hoehe VALUES (1200,'Standardabweichung 1 cm < SH <= 3 cm')
INSERT INTO Genauigkeit_Hoehe VALUES (1300,'Standardabweichung 3 cm < SH <= 10 cm')
INSERT INTO Genauigkeit_Hoehe VALUES (1600,'Standardabweichung 10 cm < SH <= 1 m')
INSERT INTO Genauigkeit_Hoehe VALUES (1900,'Standardabweichung SH > 1 m')
INSERT INTO Genauigkeit_Hoehe VALUES (9998,'Standardabweichung nicht ermittelt')

   END_SQL
*)

ENTITY Skizze
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Aktualitaet                   : Datum;
   Skizzenname                   : STRING(60);
   Skizzenart                    : OPTIONAL Skizzenart;
   Bemerkungen                   : OPTIONAL STRING;
   historische_Skizzen           : OPTIONAL SET [1:?] OF STRING;
--- Relationen :
INVERSE
   zu_Vermessungspunkt           : SET [0:?] OF Vermessungspunkt FOR hat_Skizze; (* D *)
END_ENTITY;

ENTITY Skizzenart;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Skizzenart VALUES (1000,'Einmessungsskizze')
INSERT INTO Skizzenart VALUES (1100,'Randzeichnung')
INSERT INTO Skizzenart VALUES (3000,'Foto')
INSERT INTO Skizzenart VALUES (3100,'Ansichtszeichnung')
INSERT INTO Skizzenart VALUES (4000,'Luftbildausschnitt')
INSERT INTO Skizzenart VALUES (5000,'Diagramm')
INSERT INTO Skizzenart VALUES (5100,'Tabelle')

   END_SQL
*)

ENTITY Festpunkt
ABSTRACT SUPERTYPE OF (ONEOF(Lagefestpunkt,Hoehenfestpunkt))
SUBTYPE OF (Vermessungspunkt);
   (* ARTEN J *)
--- Attribute :
   Katasteramt_Stellart          : OPTIONAL STRING;
   Katasteramt_Schluessel        : OPTIONAL STRING;
   GPS_Tauglichkeit              : OPTIONAL GPS_Tauglichkeit;
--- Relationen :
   Katasteramt_Land              : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
   liegt_in_Gemeinde             : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
   liegt_in_Gemarkung            : OPTIONAL Gemarkung;
END_ENTITY;

ENTITY GPS_Tauglichkeit;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO GPS_Tauglichkeit VALUES (1000,'sehr guter Empfang')
INSERT INTO GPS_Tauglichkeit VALUES (2000,'eingeschränkte Horizontfreiheit')
INSERT INTO GPS_Tauglichkeit VALUES (3000,'Mehrwegeeffekte möglich')
INSERT INTO GPS_Tauglichkeit VALUES (4000,'nicht geeignet für GPS')

   END_SQL
*)

ENTITY Lagefestpunkt
ABSTRACT SUPERTYPE OF (ONEOF(trigonometrischer_Punkt,Sicherungspunkt,Aufnahmepunkt,
                             sonstiger_Vermessungspunkt,Lagefestpunkt_SBV))
SUBTYPE OF (Festpunkt);
   (* ARTEN J *)
--- Attribute :
   Punktstabilitaet              : OPTIONAL Punktstabilitaet_Lagefestpunkt;
--- Relationen :
END_ENTITY;

ENTITY Punktstabilitaet_Lagefestpunkt;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Punktstabilitaet_Lagefestpunkt VALUES (1000,'sehr gut')
INSERT INTO Punktstabilitaet_Lagefestpunkt VALUES (2000,'ausreichend')
INSERT INTO Punktstabilitaet_Lagefestpunkt VALUES (3000,'befriedigend')
INSERT INTO Punktstabilitaet_Lagefestpunkt VALUES (5000,'mangelhaft (ohne Nennung eines Grundes)')
INSERT INTO Punktstabilitaet_Lagefestpunkt VALUES (5100,'mangelhaft (Bergsenkungsgebiet)')
INSERT INTO Punktstabilitaet_Lagefestpunkt VALUES (5200,'mangelhaft (in rutschgefährdeter Hanglage)')
INSERT INTO Punktstabilitaet_Lagefestpunkt VALUES (5300,'mangelhaft (sehr nahe an Gewässer)')
INSERT INTO Punktstabilitaet_Lagefestpunkt VALUES (6000,'sehr gut')
INSERT INTO Punktstabilitaet_Lagefestpunkt VALUES (7000,'befriedigend')
INSERT INTO Punktstabilitaet_Lagefestpunkt VALUES (9000,'mangelhaft')
INSERT INTO Punktstabilitaet_Lagefestpunkt VALUES (9998,'Punktstabilität nicht untersucht')

   END_SQL
*)

ENTITY Lagefestpunkt_SBV
SUPERTYPE OF (ONEOF(Lagepasspunkt_SBV))
SUBTYPE OF (Lagefestpunkt,Punktnummer_SBV);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Lagepasspunkt_SBV
SUBTYPE OF (Lagefestpunkt_SBV);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Hoehenfestpunkt
ABSTRACT SUPERTYPE OF (ONEOF(Nivellementpunkt,Hoehenfestpunkt_SBV))
SUBTYPE OF (Festpunkt);
   (* ARTEN J *)
--- Attribute :
   vermutete_Hoehenstabilitaet   : OPTIONAL vermutete_Hoehenstabilitaet;
   Guete_des_Vermarkungstraegers : OPTIONAL Guete_des_Vermarkungstraegers;
   Topographie_und_Umwelt        : OPTIONAL Topographie_und_Umwelt;
   Guete_des_Baugrundes          : OPTIONAL Guete_des_Baugrundes;
   geologische_Stabilitaet       : OPTIONAL geologische_Stabilitaet;
   Grundwasserstand              : OPTIONAL Grundwasserstand;
   Grundwasserschwankung         : OPTIONAL Grundwasserschwankung;
   Hoehenstabilitaet_aus_Wdhmessg: OPTIONAL Hoehenstabilitaet_aus_Wdhmessg;
--- Relationen :
END_ENTITY;

ENTITY vermutete_Hoehenstabilitaet;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO vermutete_Hoehenstabilitaet VALUES (1000,'sehr gut')
INSERT INTO vermutete_Hoehenstabilitaet VALUES (3000,'befriedigend')
INSERT INTO vermutete_Hoehenstabilitaet VALUES (5000,'mangelhaft')
INSERT INTO vermutete_Hoehenstabilitaet VALUES (9998,'nicht bekannt')

   END_SQL
*)

ENTITY Guete_des_Vermarkungstraegers;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Guete_des_Vermarkungstraegers VALUES (2000,'gut')
INSERT INTO Guete_des_Vermarkungstraegers VALUES (3000,'befriedigend')
INSERT INTO Guete_des_Vermarkungstraegers VALUES (5000,'unzureichend')
INSERT INTO Guete_des_Vermarkungstraegers VALUES (9998,'nicht bekannt')

   END_SQL
*)

ENTITY Topographie_und_Umwelt;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Topographie_und_Umwelt VALUES (1000,'keine Topographie- und Umwelteinflüsse')
INSERT INTO Topographie_und_Umwelt VALUES (2000,'geringe Topographie- und Umwelteinflüsse')
INSERT INTO Topographie_und_Umwelt VALUES (3000,'mäßige Topographie- und Umwelteinflüsse')
INSERT INTO Topographie_und_Umwelt VALUES (4000,'starke Topographie- und Umwelteinflüsse')
INSERT INTO Topographie_und_Umwelt VALUES (4100,'starke Topographie- und Umwelteinflüsse (Bergsenkungsgebiet)')
INSERT INTO Topographie_und_Umwelt VALUES (4200,'starke Topographie- und Umwelteinflüsse (in rutschgefährdeter Hanglage)')
INSERT INTO Topographie_und_Umwelt VALUES (4300,'starke Topographie- und Umwelteinflüsse (sehr nahe an Gewässer)')
INSERT INTO Topographie_und_Umwelt VALUES (5000,'sehr starke Topographie- und Umwelteinflüsse')
INSERT INTO Topographie_und_Umwelt VALUES (9999,'Topographie- und Umwelteinflüsse nicht untersucht')

   END_SQL
*)

ENTITY Guete_des_Baugrundes;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Guete_des_Baugrundes VALUES (1000,'sehr gute Güte des Baugrundes')
INSERT INTO Guete_des_Baugrundes VALUES (2000,'gute Güte des Baugrundes')
INSERT INTO Guete_des_Baugrundes VALUES (3000,'befriedigende Güte des Baugrundes')
INSERT INTO Guete_des_Baugrundes VALUES (4000,'ausreichende Güte des Baugrundes')
INSERT INTO Guete_des_Baugrundes VALUES (5000,'mangelhafte Güte des Baugrundes')
INSERT INTO Guete_des_Baugrundes VALUES (9999,'Güte des Baugrundes nicht untersucht')

   END_SQL
*)

ENTITY geologische_Stabilitaet;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO geologische_Stabilitaet VALUES (1000,'sehr gute geologische Stabilität')
INSERT INTO geologische_Stabilitaet VALUES (2000,'gute geologische Stabilität')
INSERT INTO geologische_Stabilitaet VALUES (3000,'befriedigende geologische Stabilität')
INSERT INTO geologische_Stabilitaet VALUES (4000,'ausreichende geologische Stabilität')
INSERT INTO geologische_Stabilitaet VALUES (5000,'mangelhafte geologische Stabilität')
INSERT INTO geologische_Stabilitaet VALUES (9999,'geologische Stabilität nicht untersucht')

   END_SQL
*)

ENTITY Grundwasserstand;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Grundwasserstand VALUES (1000,'Grundwasserstand sehr tief (> 20 m)')
INSERT INTO Grundwasserstand VALUES (2000,'Grundwasserstand tief (> 10 m und <= 20 m)')
INSERT INTO Grundwasserstand VALUES (3000,'Grundwasserstand normal (> 3 m und <= 10 m)')
INSERT INTO Grundwasserstand VALUES (4000,'Grundwasserstand hoch (> 1 m und <= 3 m)')
INSERT INTO Grundwasserstand VALUES (5000,'Grundwasserstand sehr hoch (<= 1 m)')
INSERT INTO Grundwasserstand VALUES (9000,'Grundwasserstand abgesenkt')
INSERT INTO Grundwasserstand VALUES (9999,'Grundwasserstand nicht ermittelt')

   END_SQL
*)

ENTITY Grundwasserschwankung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Grundwasserschwankung VALUES (1000,'sehr geringe Grundwasserschwankung')
INSERT INTO Grundwasserschwankung VALUES (2000,'geringe Grundwasserschwankung (<= 0,5 m)')
INSERT INTO Grundwasserschwankung VALUES (3000,'mäßige Grundwasserschwankung (> 0,5 m und <= 2 m)')
INSERT INTO Grundwasserschwankung VALUES (4000,'starke Grundwasserschwankung (> 2 m und <= 6 m)')
INSERT INTO Grundwasserschwankung VALUES (5000,'sehr starke Grundwasserschwankung (> 6 m)')
INSERT INTO Grundwasserschwankung VALUES (9999,'Grundwasserschwankung nicht ermittelt')

   END_SQL
*)

ENTITY Hoehenstabilitaet_aus_Wdhmessg;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Hoehenstabilitaet_aus_Wdhmessg VALUES (2000,'gut')
INSERT INTO Hoehenstabilitaet_aus_Wdhmessg VALUES (3000,'befriedigend')
INSERT INTO Hoehenstabilitaet_aus_Wdhmessg VALUES (5000,'unzureichend')
INSERT INTO Hoehenstabilitaet_aus_Wdhmessg VALUES (9998,'nicht bekannt')

   END_SQL
*)

ENTITY Hoehenfestpunkt_SBV
SUPERTYPE OF (ONEOF(Hoehenpasspunkt_SBV))
SUBTYPE OF (Hoehenfestpunkt,Punktnummer_SBV);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Hoehenpasspunkt_SBV
SUBTYPE OF (Hoehenfestpunkt_SBV);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Punktnummer_SBV
ABSTRACT SUPERTYPE OF (ONEOF(Lagefestpunkt_SBV,Hoehenfestpunkt_SBV))
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
   Punktnummer                   : STRING(20);
--- Relationen :
END_ENTITY;

ENTITY Aufnahmepunkt
SUBTYPE OF (Lagefestpunkt,ALKIS_Objekt);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Sicherungspunkt
SUBTYPE OF (Lagefestpunkt,ALKIS_Objekt);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY sonstiger_Vermessungspunkt
SUBTYPE OF (Lagefestpunkt,ALKIS_Objekt);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY AFIS_Punkt
ABSTRACT SUPERTYPE OF (ONEOF(trigonometrischer_Punkt,Nivellementpunkt,
                              Referenzstationspunkt))
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
   Punktkennung                  : INTEGER;
--- Relationen :
END_ENTITY;

ENTITY trigonometrischer_Punkt
SUBTYPE OF (Lagefestpunkt,AFIS_Punkt);
--- Attribute :
   Ordnung                       : OPTIONAL Ordnung_TP;
   Hierarchiestufe               : OPTIONAL Hierarchiestufe_TP;
   Wertigkeit                    : OPTIONAL Wertigkeit_TP;
   Hoehendiff_Pfeiler_ue_Platte  : OPTIONAL Meter;
   Datum_der_Messung             : OPTIONAL Datum;
   Funktion_in_einer_Punktgruppe : OPTIONAL Funktion_TP;
--- Relationen :
END_ENTITY;

ENTITY Ordnung_TP;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Ordnung_TP VALUES (1000,'TP(1) - Hauptdreieckspunkt, Zwischenpunkt 1. Ordnung')
INSERT INTO Ordnung_TP VALUES (2000,'TP(2)')
INSERT INTO Ordnung_TP VALUES (3000,'TP(3)')
INSERT INTO Ordnung_TP VALUES (4000,'TP(4)')
INSERT INTO Ordnung_TP VALUES (5000,'TP(5)')
INSERT INTO Ordnung_TP VALUES (9000,'TP, der nur eine interne Bedeutung für die Grundlagenvermessung hat')
INSERT INTO Ordnung_TP VALUES (9999,'Ordnung nicht bekannt oder nicht vergeben')

   END_SQL
*)

ENTITY Hierarchiestufe_TP;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Hierarchiestufe_TP VALUES (1000,'Hierarchiestufe A')
INSERT INTO Hierarchiestufe_TP VALUES (2000,'Hierarchiestufe B')
INSERT INTO Hierarchiestufe_TP VALUES (3000,'Hierarchiestufe C')
INSERT INTO Hierarchiestufe_TP VALUES (4000,'Hierarchiestufe D')
INSERT INTO Hierarchiestufe_TP VALUES (5000,'Hierarchiestufe E')
INSERT INTO Hierarchiestufe_TP VALUES (9999,'Hierarchiestufe nicht bekannt oder nicht vergeben')

   END_SQL
*)

ENTITY Wertigkeit_TP;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Wertigkeit_TP VALUES (1000,'Fundamentalpunkt (Punkt, auf dem Lage, Höhe und Schwere hochgenau bestimmt worden ist')
INSERT INTO Wertigkeit_TP VALUES (2000,'Übergeordneter Festpunkt')
INSERT INTO Wertigkeit_TP VALUES (9999,'Wertigkeit nicht bekannt oder nicht vergeben')

   END_SQL
*)

ENTITY Funktion_TP;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Funktion_TP VALUES (1000,'Zentrum')
INSERT INTO Funktion_TP VALUES (2000,'Exzentrum, Stationspunkt, Nebenstand')
INSERT INTO Funktion_TP VALUES (3000,'Zwillingspunkt, Orientierungspunkt')
INSERT INTO Funktion_TP VALUES (4000,'Sicherungspunkt, Versicherungspunkt')

   END_SQL
*)

ENTITY Nivellementpunkt
SUBTYPE OF (Hoehenfestpunkt,AFIS_Punkt);
--- Attribute :
   Ordnung                       : OPTIONAL Ordnung_NivP;
--- Relationen :
END_ENTITY;

ENTITY Ordnung_NivP;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Ordnung_NivP VALUES (1000,'NivP(1) - Haupthöhenpunkt, Zwischenlinienpunkt 1. Ordnung')
INSERT INTO Ordnung_NivP VALUES (2000,'NivP(2)')
INSERT INTO Ordnung_NivP VALUES (3000,'NivP(3)')
INSERT INTO Ordnung_NivP VALUES (4000,'NivP(4)')
INSERT INTO Ordnung_NivP VALUES (9000,'NivP, der nur eine interne Bedeutung für die Zwecke der Grundlagenvermessung hat')
INSERT INTO Ordnung_NivP VALUES (9998,'Ordnung nicht bekannt oder nicht vergeben')

   END_SQL
*)

ENTITY Referenzstationspunkt
SUBTYPE OF (Vermessungspunkt,AFIS_Punkt);
--- Attribute :
   Funktion_in_einer_Punktgruppe : OPTIONAL Funktion_RSP;
   Zeitraum_permanente_Messungen : OPTIONAL Zeitraum;
   Offset_N_L1                   : OPTIONAL Meter;
   Offset_E_L1                   : OPTIONAL Meter;
   Offset_H_L1                   : OPTIONAL Meter;
   Offset_N_L2                   : OPTIONAL Meter;
   Offset_E_L2                   : OPTIONAL Meter;
   Offset_H_L2                   : OPTIONAL Meter;
   PCV_L1                        : OPTIONAL LIST[72:72] OF PCV;
   PCV_L2                        : OPTIONAL LIST[72:72] OF PCV;
   ISDN_Nummer                   : OPTIONAL STRING(20);
   Funkfrequenz                  : OPTIONAL REAL(10);
--- Relationen :
   hat_GPS_Empfaenger            : OPTIONAL GPS_Empfaenger;
   hat_GPS_Antenne               : OPTIONAL GPS_Antenne;
END_ENTITY;

ENTITY Funktion_RSP;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Funktion_RSP VALUES (1000,'Zentrum')
INSERT INTO Funktion_RSP VALUES (2000,'Exzentrum')

   END_SQL
*)

ENTITY GPS_Empfaenger
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Empfaengertyp                 : OPTIONAL STRING(20);
   Seriennummer                  : OPTIONAL STRING(20);
   Firmwareversion               : OPTIONAL STRING(20);
   Aufbau_Datum                  : OPTIONAL Datum;
   Aufbau_Uhrzeit                : OPTIONAL Uhrzeit;
   Abbau_Datum                   : OPTIONAL Datum;
   Abbau_Uhrzeit                 : OPTIONAL Uhrzeit;
   zusaetzliche_Informationen    : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Referenzstationspunkt     : SET [1:?] OF Referenzstationspunkt FOR hat_GPS_Empfaenger; (* D *)
END_ENTITY;

ENTITY GPS_Antenne
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Antennentyp                   : OPTIONAL STRING(16);
   Radometyp                     : OPTIONAL STRING(4);
   Antennenreferenzpunkt         : OPTIONAL STRING(20);
   azimutale_Abweichung          : OPTIONAL Winkel;
   Antennenhoehe                 : OPTIONAL Meter;
   Hoehenoffset_zum_Phasenz_L1   : OPTIONAL Meter;
   Hoehenoffset_zum_Phasenz_L2   : OPTIONAL Meter;
   Aufbau_Datum                  : OPTIONAL Datum;
   Aufbau_Uhrzeit                : OPTIONAL Uhrzeit;
   Abbau_Datum                   : OPTIONAL Datum;
   Abbau_Uhrzeit                 : OPTIONAL Uhrzeit;
   zusaetzliche_Informationen    : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Referenzstationspunkt     : SET [1:?] OF Referenzstationspunkt FOR hat_GPS_Antenne; (* D *)
END_ENTITY;

ENTITY PCV
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Winkel                        : OPTIONAL Winkel;
   Variation                     : OPTIONAL Meter;
--- Relationen :
INVERSE
   PCV_L1_von_GPS_Antenne        : SET [0:?] OF Referenzstationspunkt FOR PCV_L1;
   PCV_L2_von_GPS_Antenne        : SET [0:?] OF Referenzstationspunkt FOR PCV_L2;
END_ENTITY;

END_SCHEMA;  -- Vermessungspunkt
SCHEMA Kataster;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073
Einführung des Schemas Liegenschaftsverwaltung gemäß N0080

09.09.2005 - 1.010 (1.010)
Formale Versionierung

29.06.2004 - 1.002 (1.009)
Überarbeitung gemäß Dokument N0060

31.05.2002 - 1.001 (1.007)
Erweiterung der Wertebereiche von Meter, Kilometer und Jahr

12.09.2001 - 1.000 (1.004)
Schema Kataster in den OKSTRA aufgenommen
*)

REFERENCE FROM Administration (Verwaltungsbezirk_abstrakt);

REFERENCE FROM Entwurf (allgemeine_Eigenschaften);

REFERENCE FROM Geometrieschema (Punktobjekt_Modell,Linienobjekt_Modell,Flaechenobjekt_Modell);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Kilometer,Quadratmeter);

REFERENCE FROM Grunderwerb (Attribut_Flurstueck,Erwerbsflaeche,Nutzungsartteilflaeche,
                            Nutzungsartflaeche,Belastung,Flurstueck_Grundbuch,
                            Person_Flurstueck,Paechter_Mieter,Grundbuch);
                            
REFERENCE FROM Vermessungspunkt (Vermessungspunkt,Festpunkt,
                                 Aufnahmepunkt,Sicherungspunkt,sonstiger_Vermessungspunkt);
                                 
REFERENCE FROM Liegenschaftsverwaltung (LV_Flurstuecksdetails);                                 

ENTITY Flurstueck
SUBTYPE OF (Flaechenobjekt_Modell,Flurstueck_abstrakt);
--- Attribute :
   Flurstueck_Zaehler            : STRING;
   Flurstueck_Nenner             : OPTIONAL STRING;
   Flaeche                       : OPTIONAL Quadratmeter;
   Lage                          : OPTIONAL STRING;
   Baukilometer                  : OPTIONAL Kilometer;
   Liegenschaftsbuch             : OPTIONAL STRING;
   Flurkarte                     : OPTIONAL STRING;
   Bemerkung                     : OPTIONAL STRING;
   Geloescht                     : OPTIONAL BOOLEAN;
--- Relationen :
   hat_Attribute                 : OPTIONAL SET [1:?] OF Attribut_Flurstueck;
   hat_Erwerbsflaechen           : OPTIONAL SET [1:?] OF Erwerbsflaeche;
   hat_Nutzungsartteilflaechen   : OPTIONAL SET [1:?] OF Nutzungsartteilflaeche;
   liegt_auf_Nutzungsartflaeche  : OPTIONAL SET [1:?] OF Nutzungsartflaeche;
   hat_Belastungen               : OPTIONAL SET [1:?] OF Belastung;
   in_Gemarkung                  : Gemarkung;
   in_Flur                       : OPTIONAL Flur;
   Nachfolger_Flurstueck         : OPTIONAL SET [1:?] OF Flurstueck_abstrakt;
   Vorgaenger_Flurstueck         : OPTIONAL SET [1:?] OF Flurstueck_abstrakt;
   hat_LV_Flurstuecksdetails     : OPTIONAL LV_Flurstuecksdetails;
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;

ENTITY Flurstueck_abstrakt
ABSTRACT SUPERTYPE OF (ONEOF(Flurstueck, Flurstueck_Symbol));
SUBTYPE OF (OKSTRA_Objekt);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Flurstueck_Symbol
SUBTYPE OF (Flurstueck_abstrakt);
--- Attribute :
   Kennung                       : STRING(20);
--- Relationen :
END_ENTITY;

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

ENTITY besondere_Flurstuecksgrenze
SUBTYPE OF (Linienobjekt_Modell);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Grenzpunkt
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   ist_Vermessungspunkt          : OPTIONAL SET [1:?] OF Vermessungspunkt; (* D *)
END_ENTITY;

ENTITY Gemarkung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Schluessel                    : STRING;
--- Relationen :
   in_Verwaltungsbezirk          : OPTIONAL SET [1:?] OF
                                            Verwaltungsbezirk_abstrakt; (* O *)
INVERSE
   hat_Flurstuecke               : SET [0:?] OF Flurstueck FOR in_Gemarkung;
   hat_Grundbuch                 : SET [0:?] OF Grundbuch FOR zu_Gemarkung;
   enthaelt_Festpunkt            : SET [0:?] OF Festpunkt FOR liegt_in_Gemarkung;
END_ENTITY;

ENTITY ALKIS_Objekt
ABSTRACT SUPERTYPE OF (ONEOF(ALKIS_Objekt_Punkt,ALKIS_Objekt_Linie,ALKIS_Objekt_Flaeche,
                             Aufnahmepunkt,Sicherungspunkt,sonstiger_Vermessungspunkt))
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Identifikator                 : STRING;
--- Relationen :
END_ENTITY;

ENTITY ALKIS_Objekt_Punkt
SUBTYPE OF (Punktobjekt_Modell,allgemeine_Eigenschaften,ALKIS_Objekt);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY ALKIS_Objekt_Linie
SUBTYPE OF (Linienobjekt_Modell,allgemeine_Eigenschaften,ALKIS_Objekt);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY ALKIS_Objekt_Flaeche
SUBTYPE OF (Flaechenobjekt_Modell,allgemeine_Eigenschaften,ALKIS_Objekt);
--- Attribute :
--- Relationen :
END_ENTITY;

END_SCHEMA;  -- Kataster
SCHEMA Kostenberechnung;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Formale Versionierung

29.06.2004 - 1.001 (1.009)
Aenderung gemaess Aenderungsantrag A0039

03.09.2003 - 1.000 (1.008)
Aufnahme des Schemas Kostenberechnung
in den OKSTRA

*)

REFERENCE FROM Strassennetz (Strasse_abstrakt,nicht_nach_ASB_klass_Strasse);

REFERENCE FROM Administration (Verwaltungsbezirk_abstrakt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Anzahl_zweistellig,KilometerOKSTRA_Schluesseltabelle,
                                   Anzahl_zweistellig,Kilometer,
                                   Datum,Prozent,Waehrungsangabe,Groesse,
                                   Anzahl_einstellig,Meter);

ENTITY Kostra_Projekt
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
--- Relationen:
   hat_Projektkennzeichnung      : Projektkennzeichnung_Kostra;
   hat_Kostendaten               : Kostendaten;
   hat_Regionaltext_Freitext_Kat : Regionaltext_Freitext_Katalog;
   hat_HOAI_Daten                : OPTIONAL HOAI_Daten;
   hat_Formblaetter              : Formblaetter;
END_ENTITY;

ENTITY Projektkennzeichnung_Kostra
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   VKE_Nummer_der_Verkehrseinheit: OPTIONAL Anzahl_zweistellig;
   VKE_Laenge                    : Kilometer;
   Datum_des_Standes             : Datum;
   Traeger_der_Baumassnahme      : LIST[1:2] OF STRING(100);
   vollstaendige_Projektnummer   : STRING(100);
   Entwurfsart                   : Entwurfsart_AKS;
   Stand_der_Fortschreibung      : Stand_der_Fortschreibung_AKS;
   Berechnungsart                : Berechnungsart_AKS;
   Genauigkeit                   : Genauigkeit_AKS;
   Streckenbezeichnung           : LIST[1:2] OF STRING(100);
   Projektbezeichnung            : LIST[1:2] OF STRING(100);
   Bauabschnitt                  : LIST[1:2] OF STRING(100);
--- Relationen:
   hat_Land                      : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *) -- Bun-desland
   hat_Strasse                   : OPTIONAL SET [1:?] OF Strasse_abstrakt; (* D *)
   hat_nicht_nach_ASB_klass_Str  : OPTIONAL nicht_nach_ASB_klass_Strasse;
   hat_Zusatzdaten               : Zusatzdaten_Kostra;
INVERSE
   von_Kostra_Projekt            : Kostra_Projekt FOR hat_Projektkennzeichnung;
WHERE
   Strasse_oder_nicht_klass_Str  : (EXISTS(hat_Strasse) XOR
                                    EXISTS(hat_nicht_nach_ASB_klass_Str));
END_ENTITY;

ENTITY Entwurfsart_AKS;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen:
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Entwurfsart_AKS VALUES( 1, 'Linienuntersuchung' )
INSERT INTO Entwurfsart_AKS VALUES( 2, 'Entwurf' )
INSERT INTO Entwurfsart_AKS VALUES( 3, 'Planfeststellung' )
INSERT INTO Entwurfsart_AKS VALUES( 4, 'Ausführung' )

   END_SQL
*)

ENTITY Stand_der_Fortschreibung_AKS;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen:
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Stand_der_Fortschreibung_AKS VALUES( 0, 'Aufstellung' )
INSERT INTO Stand_der_Fortschreibung_AKS VALUES( 1, '1. Fortschreibung' )
INSERT INTO Stand_der_Fortschreibung_AKS VALUES( 2, '2. Fortschreibung' )
INSERT INTO Stand_der_Fortschreibung_AKS VALUES( 3, '3. Fortschreibung' )
INSERT INTO Stand_der_Fortschreibung_AKS VALUES( 4, '4. Fortschreibung' )
INSERT INTO Stand_der_Fortschreibung_AKS VALUES( 5, '5. Fortschreibung' )
INSERT INTO Stand_der_Fortschreibung_AKS VALUES( 6, '6. Fortschreibung' )
INSERT INTO Stand_der_Fortschreibung_AKS VALUES( 7, '7. Fortschreibung' )
INSERT INTO Stand_der_Fortschreibung_AKS VALUES( 8, '8. Fortschreibung' )
INSERT INTO Stand_der_Fortschreibung_AKS VALUES( 9, '9. Fortschreibung' )

   END_SQL
*)

ENTITY Berechnungsart_AKS;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : STRING(1);
   Langtext                      : STRING;
--- Relationen:
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Berechnungsart_AKS VALUES( 'H', 'Hauptberechnung' )
INSERT INTO Berechnungsart_AKS VALUES( 'N', 'Nebenberechnung' )

   END_SQL
*)

ENTITY Genauigkeit_AKS;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : STRING(1);
   Langtext                      : STRING;
--- Relationen:
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Genauigkeit_AKS VALUES( 'V', 'Vereinfachte Berechnung' )
INSERT INTO Genauigkeit_AKS VALUES( 'B', 'Berechnung' )
INSERT INTO Genauigkeit_AKS VALUES( 'A', 'Abrechnung' )

   END_SQL
*)

ENTITY Zusatzdaten_Kostra
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Kleinleistung                 : Prozent;
   Waehrung                      : Waehrungsangabe;
   Mehrwertsteuersatz            : Prozent;
--- Relationen:
INVERSE
   Teil_von_Projektkennzeichnung : SET[0:?] OF Projektkennzeichnung_Kostra
                                    FOR hat_Zusatzdaten;
END_ENTITY;

ENTITY Kostendaten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
--- Relationen:
   hat_Lose                      : OPTIONAL LIST[1:10] OF Lose;
   hat_Kostenbeteiligte          : SET[1:25] OF Kostenbeteiligte;
   hat_Teile                     : SET[1:?] OF Teil_Kostendaten;
INVERSE
   Teil_von_Projekt_Kostra       : SET[0:1] OF Kostra_Projekt FOR hat_Kostendaten;
END_ENTITY;

ENTITY Lose
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Bezeichnung                   : STRING(100);
--- Relationen:
INVERSE
   Teil_von_Kostendaten          : SET[1:?] OF Kostendaten FOR hat_Lose;
   zu_Teil                       : Teil_Kostendaten FOR hat_Lose;
END_ENTITY;

ENTITY Kostenbeteiligte
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Typ                           : Typ_des_Kostenbeteiligten;
   Bezeichnung                   : STRING(100);
--- Relationen:
   hat_Kostenbeteiligung         : OPTIONAL SET[1:?] OF Kostenbeteiligung;
INVERSE
   Teil_von_Kostendaten          : SET[1:?] OF Kostendaten FOR hat_Kostenbeteiligte;
END_ENTITY;

ENTITY Typ_des_Kostenbeteiligten;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen:
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Typ_des_Kostenbeteiligten VALUES( 1, 'Bund Straßenbauhaushalt Teil 1' )
INSERT INTO Typ_des_Kostenbeteiligten VALUES( 2, 'Bund Straßenbauhaushalt Teil 2' )
INSERT INTO Typ_des_Kostenbeteiligten VALUES( 3, 'Bund sonstiges' )
INSERT INTO Typ_des_Kostenbeteiligten VALUES( 4, 'Land' )
INSERT INTO Typ_des_Kostenbeteiligten VALUES( 5, 'Kreis' )
INSERT INTO Typ_des_Kostenbeteiligten VALUES( 6, 'Gemeinde' )
INSERT INTO Typ_des_Kostenbeteiligten VALUES( 7, 'Sonstige' )

   END_SQL
*)

ENTITY Kostenbeteiligung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Art                           : Art_der_Kostenbeteiligung;
   Wert                          : Prozent;
   tatsaechliche_Kosten          : Groesse;
--- Relationen:
INVERSE
   zu_Kostenbeteiligtem          : Kostenbeteiligte FOR hat_Kostenbeteiligung;
   Teil_von_Teil_Kostendaten     : Teil_Kostendaten FOR hat_Kostenbeteiligung;
   Teil_von_Leistungsbeschreibung: Leistungsbeschreibung FOR hat_Kostenbeteiligung;
END_ENTITY;

ENTITY Art_der_Kostenbeteiligung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen:
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_der_Kostenbeteiligung VALUES( 0, 'Prozentual' )
INSERT INTO Art_der_Kostenbeteiligung VALUES( 1, 'Pauschal' )
INSERT INTO Art_der_Kostenbeteiligung VALUES( 2, 'Rest' )

   END_SQL
*)

ENTITY Teil_Kostendaten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Hauptteilnummer               : Anzahl_einstellig;
   Teilnummer                    : Anzahl_zweistellig;
   Bezeichnung                   : LIST[1:2] OF STRING(100);
--- Relationen:
   hat_Lose                      : OPTIONAL Lose;
   hat_Kostenbeteiligung         : OPTIONAL SET[1:5] OF Kostenbeteiligung;
   hat_Leistungsbeschreibung     : OPTIONAL SET[1:?] OF Leistungsbeschreibung;
   hat_Formblatt_C               : OPTIONAL Formblatt_C;
INVERSE
   Teil_von_Kostendaten          : Kostendaten FOR hat_Teile;
END_ENTITY;

ENTITY Leistungsbeschreibung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   KBK_Nummer                    : OPTIONAL INTEGER;
   Menge                         : INTEGER;
   Einzelpreis                   : Groesse;
   Menge_zur_Preisbildung        : INTEGER;
   Faktor_zur_Preisbildung       : Groesse;
   errechneter_Stuetzpreis       : Groesse;
--- Relationen:
   hat_Regionaltext_Freitext     : OPTIONAL Regionaltext_Freitext;
   hat_Kostenbeteiligung         : OPTIONAL SET[1:5] OF Kostenbeteiligung;
INVERSE
   Teil_von_Teil_Kostendaten     : Teil_Kostendaten FOR hat_Leistungsbeschreibung;
WHERE
   KBK_oder_Regionaltext_Freitext: (EXISTS(KBK_Nummer) XOR
                                    EXISTS(hat_Regionaltext_Freitext));
END_ENTITY;

ENTITY Regionaltext_Freitext
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   KBK_Nummer                    : INTEGER;
   Masseinheit                   : STRING(4) FIXED;
   Text                          : LIST[1:5] OF STRING(35);
--- Relationen:
INVERSE
   in_Katalog                    : Regionaltext_Freitext_Katalog
                                    FOR hat_Regionaltexte_Freitexte;
   zu_Leistungsbeschreibung      : SET[0:?] OF Leistungsbeschreibung
                                    FOR hat_Regionaltext_Freitext;
END_ENTITY;

ENTITY Regionaltext_Freitext_Katalog
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
--- Relationen:
   hat_Regionaltexte_Freitexte   : OPTIONAL SET[1:?] OF Regionaltext_Freitext;
INVERSE
   Teil_von_Kostra_Projekt       : SET[0:1] OF Kostra_Projekt
                                    FOR hat_Regionaltext_Freitext_Kat;
END_ENTITY;

ENTITY Formblatt_C
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Datum_des_Standes_bisher      : Datum;
   bisherige_Kosten_nach_Hauptgr : LIST[9:9] OF INTEGER;
--- Relationen:
INVERSE
   Teil_von_Teil_Kostendaten     : Teil_Kostendaten FOR hat_Formblatt_C;
END_ENTITY;

ENTITY Formblaetter
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
--- Relationen:
   hat_Formblatt_A1              : Formblatt_A1;
   hat_Formblatt_A2              : Formblatt_A2;
   hat_Formblatt_A3              : OPTIONAL Formblatt_A3;
   hat_Formblatt_B               : Formblatt_B;
   hat_Formblatt_S1              : OPTIONAL Formblatt_S1;
INVERSE
   Teil_von_Kostra_Projekt       : SET[0:1] OF Kostra_Projekt FOR hat_Formblaetter;
END_ENTITY;

ENTITY Formblatt_A1
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Aufgestellt                   : LIST[1:6] OF STRING(40);
   Geprueft                      : LIST[1:6] OF STRING(40);
   Genehmigt                     : LIST[1:6] OF STRING(40);
   Gesehen                       : LIST[1:6] OF STRING(40);
--- Relationen:
INVERSE
   Teil_von_Formblatt            : SET[0:1] OF Formblaetter FOR hat_Formblatt_A1;
END_ENTITY;

ENTITY Formblatt_A2
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
--- Relationen:
   hat_Gesamtkostenverteilung    : SET[7:7] OF Gesamtkostenverteilung;
INVERSE
   Teil_von_Formblatt            : SET[0:1] OF Formblaetter FOR hat_Formblatt_A2;
END_ENTITY;

ENTITY Gesamtkostenverteilung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Bezeichnung_der_Kostenbeteil  : STRING(100);
   ist_Traeger_der_Baumassnahme  : BOOLEAN;
   Titel_der_Kostenbet_Bau_bisher: STRING(10);
   Kostenbeteiligung_Bau_bisher  : INTEGER;
   Titel_der_Kostenbet_GE_bisher : STRING(10);
   Kostenbeteiligung_GE_bisher   : INTEGER;
   Titel_der_Kostenbet_Bau       : STRING(10);
   Kostenbeteiligung_Bau         : INTEGER;
   Titel_der_Kostenbet_GE        : STRING(10);
   Kostenbeteiligung_GE          : INTEGER;
--- Relationen:
INVERSE
   zu_Formblatt_A2               : SET[0:?] OF Formblatt_A2
                                    FOR hat_Gesamtkostenverteilung;
END_ENTITY;

ENTITY Formblatt_A3
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Bezeichnung_Streckenentwurf   : LIST[1:2] OF STRING(100);
   Datum_Gesehenvermerk          : Datum;
   Aktenzeichen_Gesehenvermerk   : STRING(100);
   genehmigte_Kosten_gesamt      : Groesse;
   genehmigte_Kosten_Bund        : Groesse;
   Kosten_Teilentwurf_gesamt     : Groesse;
   Kosten_Teilentwurf_Bund       : Groesse;
   beruecks_Kost_Strentwurf_ges  : Groesse;
   beruecks_Kost_Strentwurf_Bund : Groesse;
   Differenz_gesamt              : Groesse;
   Differenz_Bund                : Groesse;
--- Relationen:
INVERSE
   Teil_von_Formblatt            : Formblaetter FOR hat_Formblatt_A3;
END_ENTITY;

ENTITY Formblatt_B
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Kosten_Ingenieurbauw_bisher   : LIST[4:4] OF INTEGER;
--- Relationen:
   hat_zusammeng_Hauptteilkosten : LIST[4:4] OF zusammenges_Hauptteilkosten;
INVERSE
   Teil_von_Formblatt            : Formblaetter FOR hat_Formblatt_B;
END_ENTITY;

ENTITY zusammenges_Hauptteilkosten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Kosten_GE_des_Standes_bisher  : INTEGER;
   Kosten_Bau_des_Standes_bisher : INTEGER;
--- Relationen:
INVERSE
   zu_Formblatt_B                : SET[0:?] OF Formblatt_B
                                    FOR hat_zusammeng_Hauptteilkosten;
END_ENTITY;

ENTITY Formblatt_S1
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Schaetzungsgrundlage          : LIST[1:10] OF STRING(100);
--- Relationen:
INVERSE
   Teil_von_Formblatt            : SET[0:?] OF Formblaetter FOR hat_Formblatt_S1;
END_ENTITY;

ENTITY HOAI_Daten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
--- Relationen:
   hat_HOAI_Projektdaten         : OPTIONAL SET[1:?] OF HOAI_Projektdaten;
   hat_Zuordnung_KBK_ING3        : OPTIONAL SET[1:500] OF Zuordnung_KBK_ING3;
   hat_Zuordnung_KBK_ING4        : OPTIONAL SET[1:500] OF Zuordnung_KBK_ING4;
INVERSE
   Teil_von_Kostra_Projekt       : SET[0:1] OF Kostra_Projekt FOR hat_HOAI_Daten;
END_ENTITY;

ENTITY HOAI_Projektdaten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Vertragsnummer                : STRING;
   Anlagennummer                 : STRING;
   interner_Index_HOAI_Fassung   : Index_HOAI_Fassung;
   interner_Index_HOAI_Teil      : Index_HOAI_Teil;
   interner_Index_HOAI_Vertrag   : Index_HOAI_Vertrag;
   Kostenquelle                  : Kostenquelle;
   Projektbezeichnung            : STRING(100);
   Auftragnehmer                 : STRING(100);
   Umsatzsteuer                  : Prozent;
   Minderung_nach_52_5           : Minderung_nach_52_5_HOAI;
   Minderung_nach_52_4_2         : BOOLEAN;
--- Relationen:
   hat_HOAI_Honorarberechnung    : HOAI_Honorarberechnung;
   hat_HOAI_Grundleistungen      : HOAI_Grundleistungen;
   hat_HOAI_Sonstiges            : HOAI_Sonstiges;
   hat_HOAI_Ermittlung_ING_10_11 : OPTIONAL HOAI_Ermittlung_ING_10_11;
INVERSE
   Teil_von_HOAI_Daten           : SET[1:?] OF HOAI_Daten FOR hat_HOAI_Projektdaten;
END_ENTITY;

ENTITY Minderung_nach_52_5_HOAI;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen:
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Minderung_nach_52_5_HOAI VALUES( 0, 'keine Abminderung' )
INSERT INTO Minderung_nach_52_5_HOAI VALUES( 1, 'Abminderung bei drei Fahrstrei-fen' )
INSERT INTO Minderung_nach_52_5_HOAI VALUES( 2, 'Abminderung bei vier Fahrstrei-fen' )
INSERT INTO Minderung_nach_52_5_HOAI VALUES( 3, 'Abminderung bei mehr als vier Fahrstreifen' )
INSERT INTO Minderung_nach_52_5_HOAI VALUES( 4, 'Abminderung bei zwei Gleisen mit gemeinsamem Planum' )

   END_SQL
*)

ENTITY Zuordnung_KBK_ING3
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   KBK_Nr_zur_Aufsumm_n_HVA_ING3 : INTEGER;
   Zeilennr_z_Aufsumm_im_Formular: Groesse;
--- Relationen:
INVERSE
   Teil_von_HOAI_Daten           : SET[1:?] OF HOAI_Daten FOR hat_Zuordnung_KBK_ING3;
END_ENTITY;

ENTITY Zuordnung_KBK_ING4
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   KBK_Nr_zur_Aufsumm_n_HVA_ING4 : INTEGER;
   Zeilennr_z_Aufsumm_im_Formular: Groesse;
--- Relationen:
INVERSE
   Teil_von_HOAI_Daten           : SET[1:?] OF HOAI_Daten FOR hat_Zuordnung_KBK_ING4;
END_ENTITY;

ENTITY Index_HOAI_Fassung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen:
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Index_HOAI_Fassung VALUES( 1, 'HOAI Fassung gültig ab 01.01.1996' )
INSERT INTO Index_HOAI_Fassung VALUES( 2, 'HOAI Fassung gültig ab 01.01.1991' )
INSERT INTO Index_HOAI_Fassung VALUES( 3, 'HOAI Fassung gültig ab 01.04.1988' )
INSERT INTO Index_HOAI_Fassung VALUES( 10, 'HOAI Fassung gültig ab 01.01.2002' )

   END_SQL
*)

ENTITY Index_HOAI_Teil;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen:
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Index_HOAI_Teil VALUES( 2, 'Gebäude, Freianlagen und raumbildende Ausbauten' )
INSERT INTO Index_HOAI_Teil VALUES( 4, 'Gutachten und Wertermittlungen' )
INSERT INTO Index_HOAI_Teil VALUES( 5, 'Städtebauliche Leistungen' )
INSERT INTO Index_HOAI_Teil VALUES( 6, 'Landschaftsplanerische Leistungen' )
INSERT INTO Index_HOAI_Teil VALUES( 7, 'Ingenieurbauwerke und Verkehrsanlagen' )
INSERT INTO Index_HOAI_Teil VALUES( 8, 'Tragwerksplanung' )
INSERT INTO Index_HOAI_Teil VALUES( 9, 'Technische Ausrüstung' )
INSERT INTO Index_HOAI_Teil VALUES( 10, 'Thermische Bauphysik' )
INSERT INTO Index_HOAI_Teil VALUES( 11, 'Schallschutz und Raumakustik' )
INSERT INTO Index_HOAI_Teil VALUES( 12, 'Bodenmechanik' )
INSERT INTO Index_HOAI_Teil VALUES( 13, 'Vermessungstechnische Leistungen' )

   END_SQL
*)

ENTITY Index_HOAI_Vertrag;
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Teil                          : STRING(4);
   Kennung                       : INTEGER;
   Teil                          : STRING(4);
   Nummer                        : INTEGER;
   Langtext                      : STRING;
--- Relationen:
UNIQUE
   Teil_Kennung_eindeutig        : Teil,Kennung;
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Index_HOAI_Vertrag VALUES( 21, 'II', 1, '§11' )
INSERT INTO Index_HOAI_Vertrag VALUES( 22, 'II', 2, '§13' )
INSERT INTO Index_HOAI_Vertrag VALUES( 23, 'II', 3, '§14a' )
INSERT INTO Index_HOAI_Vertrag VALUES( 41, 'IV', 1, '§33' )
INSERT INTO Index_HOAI_Vertrag VALUES( 42, 'IV', 2, '§34' )
INSERT INTO Index_HOAI_Vertrag VALUES( 51, 'V', 1, '§38' )
INSERT INTO Index_HOAI_Vertrag VALUES( 52, 'V', 2, '§41' )
INSERT INTO Index_HOAI_Vertrag VALUES( 61, 'VI', 1, '§45b' )
INSERT INTO Index_HOAI_Vertrag VALUES( 62, 'VI', 2, '§46a' )
INSERT INTO Index_HOAI_Vertrag VALUES( 63, 'VI', 3, '§47a' )
INSERT INTO Index_HOAI_Vertrag VALUES( 64, 'VI', 4, '§48b' )
INSERT INTO Index_HOAI_Vertrag VALUES( 65, 'VI', 5, '§49d' )
INSERT INTO Index_HOAI_Vertrag VALUES( 66, 'VI', 6, '§49a(FNP)' )
INSERT INTO Index_HOAI_Vertrag VALUES( 67, 'VI', 7, '§49a(BBP)' )
INSERT INTO Index_HOAI_Vertrag VALUES( 71, 'VII', 1, '§56.1' )
INSERT INTO Index_HOAI_Vertrag VALUES( 72, 'VII', 2, '§56.2' )
INSERT INTO Index_HOAI_Vertrag VALUES( 81, 'VIII', 1, '§65' )
INSERT INTO Index_HOAI_Vertrag VALUES( 91, 'IX', 1, '§74' )
INSERT INTO Index_HOAI_Vertrag VALUES( 101, 'X', 1, '§78' )
INSERT INTO Index_HOAI_Vertrag VALUES( 111, 'XI', 1, '§83' )
INSERT INTO Index_HOAI_Vertrag VALUES( 112, 'XI', 2, '§89' )
INSERT INTO Index_HOAI_Vertrag VALUES( 121, 'XII', 1, '§94' )
INSERT INTO Index_HOAI_Vertrag VALUES( 131, 'XIII', 1, '§97' )
INSERT INTO Index_HOAI_Vertrag VALUES( 132, 'XIII', 2, '§98' )

   END_SQL
*)

ENTITY Kostenquelle;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen:
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Kostenquelle VALUES( 1, 'Kostenschätzung' )
INSERT INTO Kostenquelle VALUES( 2, 'Kostenberechnung' )
INSERT INTO Kostenquelle VALUES( 3, 'Kostenanschlag' )

   END_SQL
*)

ENTITY HOAI_Honorarberechnung
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   anrechenbare_Kosten           : Groesse;
   Honorarzone                   : Anzahl_einstellig;
   Honorarsatz_in_Prozent        : Prozent;
   Honorarvereinbarung           : Honorarvereinbarung_HOAI;
   Wert_d_Aenderung_Vereinbarung : Groesse; -- Prozent oder freies Honorar
   ING_Vertragsbasis             : Anzahl_einstellig;
   Umsatzsteuer_enthalten        : BOOLEAN;
--- Relationen:
INVERSE
   Teil_von_HOAI_Projektdaten    : SET[0:?] OF HOAI_Projektdaten
                                    FOR hat_HOAI_Honorarberechnung;
END_ENTITY;

ENTITY Honorarvereinbarung_HOAI;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen:
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Honorarvereinbarung_HOAI VALUES( 1, 'Tabellenhonorar übernehmen' )
INSERT INTO Honorarvereinbarung_HOAI VALUES( 2, 'Tabellenhonorar mindern' )
INSERT INTO Honorarvereinbarung_HOAI VALUES( 3, 'Honorar frei vereinbaren' )

   END_SQL
*)

ENTITY HOAI_Grundleistungen
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Beauftragte_GL_je_Leistungsph : LIST[9:9] OF Prozent;
--- Relationen:
INVERSE
   Teil_von_HOAI_Projektdaten    : SET[0:?] OF HOAI_Projektdaten
                                    FOR hat_HOAI_Grundleistungen;
END_ENTITY;

ENTITY HOAI_Sonstiges
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Zuschlag_bei_Umbauten_u_Modern: Zuschlag_b_Umbauten_u_Modern;
   Zuschlagswert_in_Prozent      : Prozent;
   besondere_Leistungen_pauschal : Groesse;
   besondere_Leistungen_prozent  : Groesse;
   Nebenkosten_pauschal          : Groesse;
   Nebenkosten_prozentual        : Groesse;
--- Relationen:
INVERSE
   Teil_von_HOAI_Projektdaten    : SET[0:?] OF HOAI_Projektdaten
                                    FOR hat_HOAI_Sonstiges;
END_ENTITY;

ENTITY Zuschlag_b_Umbauten_u_Modern;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen:
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Zuschlag_b_Umbauten_u_Modern VALUES( 1, 'kein Zuschlag' )
INSERT INTO Zuschlag_b_Umbauten_u_Modern VALUES( 2, 'Zuschlag nach §59' )
INSERT INTO Zuschlag_b_Umbauten_u_Modern VALUES( 3, 'Zuschlag nach §66' )

   END_SQL
*)

ENTITY HOAI_Ermittlung_ING_10_11
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Ermittlung_der_Honorarzone    : LIST[1:6] OF INTEGER;
   Massstab_d_LBP_Massn_n_ING_11 : INTEGER;
   Laenge_der_Baumassnahme       : Meter;
   Breite_der_Baumassnahme       : Meter;
--- Relationen:
   hat_Flaechenanteile           : SET[3:3] OF Flaechenanteil_Kostendaten;
INVERSE
   Teil_von_HOAI_Projektdaten    : SET[0:?] OF HOAI_Projektdaten
                                    FOR hat_HOAI_Ermittlung_ING_10_11;
END_ENTITY;

ENTITY Flaechenanteil_Kostendaten
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Anteil_am_Berechnungsraum_ha  : Groesse;
   Verrechnungseinheit_je_ha     : INTEGER;
--- Relationen:
INVERSE
   zu_HOAI_Ermittlung_ING_10_11  : SET[0:?] OF HOAI_Ermittlung_ING_10_11
                                    FOR hat_Flaechenanteile;
END_ENTITY;

END_SCHEMA; -- Kostenberechnung
SCHEMA Oekologie;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Anpassung an ASB-ING, Stand 2004

29.06.2004 - 1.001 (1.009)
Überarbeitung gemäß N0059 und der Abstimmung

03.09.2003 - 1.000 (1.008)
Aufnahme des Schemas Ökologie in den OKSTRA

*)

REFERENCE FROM Strassennetz (Punktobjekt_stat,Strasse_abstrakt,
                             Abschnitt_oder_Ast_abstrakt);

REFERENCE FROM Administration (Verwaltungsbezirk_abstrakt);

REFERENCE FROM Strassenausstattungen (Rastanlage);

REFERENCE FROM Geometrieschema (Flaechenobjekt_Modell);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Meter,Quadratmeter,Objekt_mit_IDOKSTRA_Schluesseltabelle,
                                   Meter,Quadratmeter,Objekt_mit_ID,
                                   EURO,Datum,geometrische_Auspraegung,Anzahl,
                                   Dokument_abstrakt,Jahr,Erfassungsqualitaet);

REFERENCE FROM Grunderwerb (Nutzungsartteilflaeche);

ENTITY Kompensationsmassnahme
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Bezeichnung                   : OPTIONAL STRING(1);
   Nummer                        : OPTIONAL INTEGER;
   Beschreibung_gemaess_LBP      : OPTIONAL STRING;
   Gesamtgroesse                 : Quadratmeter;
   Ersatzgeld                    : OPTIONAL EURO;
   Ersatzgeld_gezahlt_am         : OPTIONAL Datum;
   Ersatzgeld_gezahlt_an         : OPTIONAL STRING;
   Begruendung_fuer_Ersatzgeld   : OPTIONAL STRING;
   fertiggestellt_am             : OPTIONAL Datum;
   Herstellung_abgeschlossen_am  : OPTIONAL Datum;
   Entwicklungsziel_erreicht_am  : OPTIONAL Datum;
   Uebergabe_an                  : OPTIONAL STRING;
   Datum_der_Uebergabe           : OPTIONAL Datum;
   Zustandskontrolle             : OPTIONAL STRING;
--- Relationen:
   hat_Teilmassnahme             : SET [1:?] OF Teilmassnahme;
INVERSE
   zu_Baumassnahme               : SET [0:?] OF Baumassnahme
                                       FOR hat_Kompensationsmassnahme;
END_ENTITY;

ENTITY Teilmassnahme
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Umfang                        : OPTIONAL Quadratmeter;
   Anzahl                        : OPTIONAL Anzahl;
   Groesse                       : OPTIONAL Quadratmeter;
--- Relationen:
   hat_Kompensationsteilflaeche  : SET [1:?] OF Kompensationsteilflaeche;
   hat_Herstellung_Fertigstpflege: OPTIONAL SET [1:?] OF Herstellung_Fertigstpflege;
   hat_Entwicklungspflege        : OPTIONAL SET [1:?] OF Entwicklungspflege;
   hat_Unterhaltungspflege       : OPTIONAL SET [1:?] OF Unterhaltungspflege;
INVERSE
   zu_Kompensationsmassnahme     : Kompensationsmassnahme
                                     FOR hat_Teilmassnahme;
END_ENTITY;

ENTITY Kompensationsteilflaeche
SUBTYPE OF (Flaechenobjekt_Modell);
--- Attribute:
   Groesse                       : Quadratmeter;
--- Relationen:
   auf_Nutzungsartteilflaeche    : Nutzungsartteilflaeche;
INVERSE
   zu_Teilmassnahme              : Teilmassnahme FOR hat_Kompensationsteilflaeche;
END_ENTITY;

ENTITY Herstellung_Fertigstpflege
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Massnahme                     : OPTIONAL STRING;
   Entwicklungsziel_erreicht_am  : OPTIONAL Datum;
   Kosten_der_Herstellung        : OPTIONAL EURO;
   Kosten_der_Fertigstellungspfl : OPTIONAL EURO;
--- Relationen:
INVERSE
   von_Teilmassnahme             : SET [0:?] OF Teilmassnahme
                                       FOR hat_Herstellung_Fertigstpflege;
END_ENTITY;

ENTITY Entwicklungspflege
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Art_der_Pflege                : OPTIONAL STRING;
   Einheitspreis                 : OPTIONAL EURO;
   Gesamtpreis                   : OPTIONAL EURO;
   Zeitpunkt_der_Pflege          : OPTIONAL Datum;
   Durchfuehrung_von             : OPTIONAL STRING;
   Kosten                        : OPTIONAL EURO;
   Pflegevertrag_mit             : OPTIONAL STRING;
   Vertrag_endet_am              : OPTIONAL Datum;
   abgenommen_am                 : OPTIONAL Datum;
   Entwicklungsziel_erreicht_am  : OPTIONAL Datum;
   Vertragsinhalte               : OPTIONAL STRING;
   Anmerkungen_zur_Pflege        : OPTIONAL STRING;
   Hinweise_f_die_weitere_Pflege : OPTIONAL STRING;
--- Relationen:
INVERSE
   von_Teilmassnahme             : SET [0:?] OF Teilmassnahme
                                       FOR hat_Entwicklungspflege;
END_ENTITY;

ENTITY Unterhaltungspflege
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Art_der_Pflege                : OPTIONAL STRING;
   Einheitspreis                 : OPTIONAL EURO;
   Gesamtpreis                   : OPTIONAL EURO;
   Durchfuehrung_von             : OPTIONAL STRING;
   Pflegevertrag_mit             : OPTIONAL STRING;
   Vertrag_endet_am              : OPTIONAL Datum;
   abgenommen_am                 : OPTIONAL Datum;
   Vertragsinhalte               : OPTIONAL STRING;
   Anmerkungen_zur_Unterhpflege  : OPTIONAL STRING;
   Hinweise_f_die_weitere_Pflege : OPTIONAL STRING;
   Kosten_d_Unterhpflege_aktuell : OPTIONAL EURO;
   Kosten_d_Unterhpflege_aufgel  : OPTIONAL EURO;
--- Relationen:
INVERSE
   von_Teilmassnahme             : SET [0:?] OF Teilmassnahme
                                       FOR hat_Unterhaltungspflege;
END_ENTITY;

ENTITY Baumassnahme
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Laenge                        : OPTIONAL Meter;
   naechster_Ort                 : OPTIONAL STRING;
   Bezeichnung                   : OPTIONAL STRING;
   Beginn                        : OPTIONAL Datum;
   Fertigstellung                : OPTIONAL Datum;
   Verkehrsfreigabe              : OPTIONAL Datum;
   Fertigstellung_Kompensmassn   : OPTIONAL Datum;
   Landschaftsbehoerde           : OPTIONAL STRING;
   Art_der_Genehmigung           : OPTIONAL STRING;
   Datum_der_Genehmigung         : OPTIONAL Datum;
   Aktenzeichen                  : OPTIONAL STRING;
   PROJIS_Nummer                 : OPTIONAL STRING;
   Fertigstellung_LBP            : OPTIONAL Datum;
   Gesamtkosten_Grunderwerb_Komp : OPTIONAL EURO;
   Gesamtkosten_Herstellung_Komp : OPTIONAL EURO;
   Gesamtkosten_Fertigstell_Komp : OPTIONAL EURO;
   Gesamtkosten_Entwicklpfl_Komp : OPTIONAL EURO;
   Gesamtkosten_Unterhpfl_Komp   : OPTIONAL EURO;
   Bearbeiter                    : OPTIONAL STRING;
   letzte_Bearbeitung            : OPTIONAL Datum;
--- Relationen:
   hat_Kompensationsmassnahme    : OPTIONAL SET [1:?] OF Kompensationsmassnahme;
   in_Verwaltungsbezirk          : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
   zu_Strasse                    : OPTIONAL SET [1:?] OF Strasse_abstrakt; (* D *)
   zu_Abschnitt_oder_Ast         : OPTIONAL SET [1:?] OF Abschnitt_oder_Ast_abstrakt; (* D *)
END_ENTITY;

ENTITY Baum
SUBTYPE OF (Bewuchs);
--- Attribute:
   Baumart                       : OPTIONAL Baumart;
   Stammumfang                   : OPTIONAL Meter;
   Stammdurchmesser              : OPTIONAL Meter;
   Kronendurchmesser             : OPTIONAL Meter;
   Wurzelhalsdurchmesser         : OPTIONAL Meter;
   Stammhoehe                    : OPTIONAL Meter;
   Baumhoehe                     : OPTIONAL Meter;
   Baumscheibe                   : OPTIONAL Quadratmeter;
   Pflanzjahr                    : OPTIONAL Jahr;
   gefaellt                      : OPTIONAL BOOLEAN;
   letzte_Baumschau              : OPTIONAL Datum;
   Schiefstand                   : OPTIONAL Schiefstand_Baum;
   Zustandsbeurteilung           : OPTIONAL SET[1:?] OF Zustandsbeurteilung_Baum;
--- Relationen:
   hat_Baumschaeden              : OPTIONAL SET [1:?] OF Baumschaden;
   hat_Standort                  : OPTIONAL SET [1:?] OF Standortbeschreibung_Baum;
INVERSE
   Beginn_von_Baumreihe          : SET[0:?] OF Baumreihenabschnitt
                                       FOR beginnt_bei_Baum;
   Ende_von_Baumreihe            : SET[0:?] OF Baumreihenabschnitt
                                       FOR endet_bei_Baum;
   Baum_in_Baumreihe             : SET[0:?] OF Baumreihenabschnitt
                                       FOR hat_Baum;
END_ENTITY;

ENTITY Baumart;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
   Baumart_botanisch             : OPTIONAL STRING;
   Gattung                       : OPTIONAL STRING;
UNIQUE
   Kennung_eindeutig : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Baumart VALUES (700,'Tanne','Abies','Abies')
INSERT INTO Baumart VALUES (2404,'Weißtanne','Abies alba','Abies')
INSERT INTO Baumart VALUES (2405,'Purpurtanne','Abies amabilis','Abies')
INSERT INTO Baumart VALUES (2407,'Balsamtanne','Abies balsamea','Abies')
INSERT INTO Baumart VALUES (2410,'Griechische Tanne','Abies cephalonica','Abies')
INSERT INTO Baumart VALUES (2411,'Coloradotanne, Grautanne, Blautanne','Abies concolor','Abies')
INSERT INTO Baumart VALUES (2415,'Küstentanne','Abies grandis','Abies')
INSERT INTO Baumart VALUES (2417,'Nikkotanne','Abies homolepis','Abies')
INSERT INTO Baumart VALUES (2419,'Koreatanne','Abies koreana','Abies')
INSERT INTO Baumart VALUES (2428,'Nordmannsanne','Abies nordmanniana','Abies')
INSERT INTO Baumart VALUES (2426,'Adelstanne','Abies procera','Abies')
INSERT INTO Baumart VALUES (2432,'Veitch''s-Tanne','Abies veitchii','Abies')
INSERT INTO Baumart VALUES (100,'Ahorn','Acer','Acer')
INSERT INTO Baumart VALUES (1337,'Feldahorn','Acer campestre','Acer')
INSERT INTO Baumart VALUES (1338,'Roter Schlangehautahorn','Acer capillipes','Acer')
INSERT INTO Baumart VALUES (4791,'Kolchischer Spitzahorn','Acer cappadocicum','Acer')
INSERT INTO Baumart VALUES (1339,'Weinahorn','Acer circinatum','Acer')
INSERT INTO Baumart VALUES (3288,'Davidsahorn','Acer davidii','Acer')
INSERT INTO Baumart VALUES (1345,'Französischer Ahorn','Acer monspessulanum','Acer')
INSERT INTO Baumart VALUES (1347,'Eschenahorn','Acer negundo','Acer')
INSERT INTO Baumart VALUES (1348,'Goldbunter Eschenahorn','Acer negundo ''Aureovariegatum''','Acer')
INSERT INTO Baumart VALUES (1349,'Gelber Eschenahorn','Acer negundo ''Odessanum''','Acer')
INSERT INTO Baumart VALUES (1350,'Silberbunter Eschenahorn','Acer negundo ''Variegatum''','Acer')
INSERT INTO Baumart VALUES (1351,'Fächerahorn','Acer palmatum','Acer')
INSERT INTO Baumart VALUES (1352,'Roter Fächerahorn','Acer palmatum ''Atropurpureum''','Acer')
INSERT INTO Baumart VALUES (1359,'Grüner Schlitzahorn','Acer palmatum ''Dissecum''','Acer')
INSERT INTO Baumart VALUES (1355,'Roter Schlitzahorn','Acer palmatum ''Dissecum Atropurpureum''','Acer')
INSERT INTO Baumart VALUES (1356,'Roter Schlitzahorn ''Garnet''','Acer palmatum ''Dissecum Garnet''','Acer')
INSERT INTO Baumart VALUES (1357,'Roter Schlitzahorn ''Nigrum''','Acer palmatum ''Dissecum Nigrum''','Acer')
INSERT INTO Baumart VALUES (1362,'Spitzahorn','Acer platanoides','Acer')
INSERT INTO Baumart VALUES (4520,'Kegelförmiger Spitzahorn','Acer platanoides ''Cleveland''','Acer')
INSERT INTO Baumart VALUES (4571,'Säulenförmiger Spitzahorn','Acer platanoides ''Columnare''','Acer')
INSERT INTO Baumart VALUES (4757,'Roter Spitzahorn ''Crimson King''','Acer platanoides ''Crimson King''','Acer')
INSERT INTO Baumart VALUES (1369,'Kegelförmiger Spitzahorn ''Emerald Queen''','Acer platanoides ''Emerald Queen''','Acer')
INSERT INTO Baumart VALUES (1365,'Blutahorn, Roter Spitzahorn ''Faassen''s Black''','Acer platanoides ''Faassen''s Black''','Acer')
INSERT INTO Baumart VALUES (3810,'Spitzahorn ''Farlake''s Green''','Acer platanoides ''Farlake''s Green''','Acer')
INSERT INTO Baumart VALUES (1366,'Kugelahorn','Acer platanoides ''Globosum''','Acer')
INSERT INTO Baumart VALUES (1367,'Vogelkrallenahorn ''Laciniatum''','Acer platanoides ''Laciniatum''','Acer')
INSERT INTO Baumart VALUES (2864,'Spitzahorn ''Olmsted''','Acer platanoides ''Olmsted''','Acer')
INSERT INTO Baumart VALUES (1368,'Spitzahorn ''Reitenbachii''','Acer platanoides ''Reitenbachii''','Acer')
INSERT INTO Baumart VALUES (2931,'Oregon-Blutahorn','Acer platanoides ''Royal Red''','Acer')
INSERT INTO Baumart VALUES (4573,'Schattenahorn ''Summershade''','Acer platanoides ''Summershade''','Acer')
INSERT INTO Baumart VALUES (1370,'Bergahorn','Acer pseudoplatanus','Acer')
INSERT INTO Baumart VALUES (3047,'Purpurblättriger Bergahorn','Acer pseudoplatanus ''Atropurpureum''','Acer')
INSERT INTO Baumart VALUES (1371,'Schmalkroniger Bergahorn ''Erectum''','Acer pseudoplatanus ''Erectum''','Acer')
INSERT INTO Baumart VALUES (2854,'Kegelförmiger Bergahorn ''Negenia''','Acer pseudoplatanus ''Negenia''','Acer')
INSERT INTO Baumart VALUES (2855,'Breitkegelförmiger Bergahorn ''Rotterdam''','Acer pseudoplatanus ''Rotterdam''','Acer')
INSERT INTO Baumart VALUES (1375,'Rotahorn','Acer rubrum','Acer')
INSERT INTO Baumart VALUES (1376,'Rostbartahorn','Acer rufinerve','Acer')
INSERT INTO Baumart VALUES (1377,'Silberahorn','Acer saccharinum','Acer')
INSERT INTO Baumart VALUES (1382,'Geschlitzter Silberahorn ''Wieri''','Acer saccharinum ''Wieri''','Acer')
INSERT INTO Baumart VALUES (3292,'Zuckerahorn','Acer saccharum','Acer')
INSERT INTO Baumart VALUES (110,'Rosskastanie','Aesculus','Aesculus')
INSERT INTO Baumart VALUES (1385,'Rotblühende Rosskastanie, Purpurkastanie','Aesculus carnea','Aesculus')
INSERT INTO Baumart VALUES (4795,'Appalachen-Rosskastanie','Aesculus flava','Aesculus')
INSERT INTO Baumart VALUES (1387,'Gemeine Rosskastanie','Aesculus hippocastanum','Aesculus')
INSERT INTO Baumart VALUES (1388,'Gefülltblühende Rosskastanie','Aesculus hippocastanum ''Baumannii''','Aesculus')
INSERT INTO Baumart VALUES (3886,'Säulen-Rosskastanie','Aesculus hippocastanum ''Fastigiata''','Aesculus')
INSERT INTO Baumart VALUES (2968,'Kugel-Rosskastanie','Aesculus hippocastanum ''Umbraculifera''','Aesculus')
INSERT INTO Baumart VALUES (120,'Götterbaum','Ailanthus','Ailanthus')
INSERT INTO Baumart VALUES (1390,'Götterbaum','Ailanthus altissima','Ailanthus')
INSERT INTO Baumart VALUES (130,'Erle','Alnus','Alnus')
INSERT INTO Baumart VALUES (3061,'Italienische Erle','Alnus cordata','Alnus')
INSERT INTO Baumart VALUES (1391,'Schwarzerle, Roterle','Alnus glutinosa','Alnus')
INSERT INTO Baumart VALUES (1392,'Kaisererle ''Imperialis''','Alnus glutinosa ''Imperialis''','Alnus')
INSERT INTO Baumart VALUES (1393,'Grauerle, Weißerle','Alnus incana','Alnus')
INSERT INTO Baumart VALUES (1395,'Golderle','Alnus incana ''Aurea''','Alnus')
INSERT INTO Baumart VALUES (1394,'Geschlitzblättrige Grauerle','Alnus incana ''Laciniata''','Alnus')
INSERT INTO Baumart VALUES (1396,'Grünerle, Alpenerle','Alnus viridis','Alnus')
INSERT INTO Baumart VALUES (1399,'Hängende Felsenbirne','Amelanchier laevis','Amelanchier')
INSERT INTO Baumart VALUES (1398,'Kupfer-Felsenbirne','Amelanchier lamarckii','Amelanchier')
INSERT INTO Baumart VALUES (1400,'Echte Felsenbirne','Amelanchier ovalis','Amelanchier')
INSERT INTO Baumart VALUES (140,'Aralie','Aralia','Aralia')
INSERT INTO Baumart VALUES (1405,'Jap. Angelikabaum, Jap. Aralie','Aralia elata','Aralia')
INSERT INTO Baumart VALUES (1406,'Goldaralie','Aralia elata ''Aureovariegata''','Aralia')
INSERT INTO Baumart VALUES (1407,'Silberaralie','Aralia elata ''Variegata''','Aralia')
INSERT INTO Baumart VALUES (2433,'Araukarie, Schmucktanne','Araucaria araucana','Araucaria')
INSERT INTO Baumart VALUES (9999,'...','Baumart nicht bestimmt','nicht bestimmt')
INSERT INTO Baumart VALUES (150,'Berberitze','Berberis','Berberis')
INSERT INTO Baumart VALUES (1422,'Grüne Heckenberberitze','Berberis thunbergii','Berberis')
INSERT INTO Baumart VALUES (160,'Birke','Betula','Betula')
INSERT INTO Baumart VALUES (1450,'Himalayabirke','Betula jacquemontii','Betula')
INSERT INTO Baumart VALUES (1443,'Schwarzbirke, Flussbirke','Betula nigra','Betula')
INSERT INTO Baumart VALUES (1444,'Papierbirke','Betula papyrifera','Betula')
INSERT INTO Baumart VALUES (1451,'Sandbirke, Weißbirke','Betula pendula','Betula')
INSERT INTO Baumart VALUES (1452,'Schlitzblättrige Birke','Betula pendula ''Dalecarlica''','Betula')
INSERT INTO Baumart VALUES (1453,'Säulenbirke','Betula pendula ''Fastigiata''','Betula')
INSERT INTO Baumart VALUES (1455,'Blutbirke, Purpurbirke','Betula pendula ''Purpurea''','Betula')
INSERT INTO Baumart VALUES (1456,'Hängebirke','Betula pendula ''Tristis''','Betula')
INSERT INTO Baumart VALUES (1457,'Trauerbirke','Betula pendula ''Youngii''','Betula')
INSERT INTO Baumart VALUES (1448,'Moor-Birke','Betula pubescens','Betula')
INSERT INTO Baumart VALUES (170,'Hainbuche','Carpinus','Carpinus')
INSERT INTO Baumart VALUES (1510,'Hainbuche, Weißbuche','Carpinus betulus','Carpinus')
INSERT INTO Baumart VALUES (1511,'Gemeine Weißbuche (Säulenform)','Carpinus betulus ''Fastigiata''','Carpinus')
INSERT INTO Baumart VALUES (2858,'Rotlaubige Hainbuche','Carpinus betulus ''Purpurea''','Carpinus')
INSERT INTO Baumart VALUES (3301,'Eichenblättrige Hainbuche','Carpinus betulus ''Quercifolia''','Carpinus')
INSERT INTO Baumart VALUES (180,'Hickory','Carya','Carya')
INSERT INTO Baumart VALUES (190,'Kastanie','Castanea','Castanea')
INSERT INTO Baumart VALUES (1514,'Esskastanie','Castanea sativa','Castanea')
INSERT INTO Baumart VALUES (200,'Trompetenbaum','Catalpa','Catalpa')
INSERT INTO Baumart VALUES (1515,'Gew. Trompetenbaum','Catalpa bignonioides','Catalpa')
INSERT INTO Baumart VALUES (2435,'Atlaszeder','Cedrus atlantica','Cedrus')
INSERT INTO Baumart VALUES (2441,'Himalaya-Zeder','Cedrus deodara','Cedrus')
INSERT INTO Baumart VALUES (2442,'Libanon-Zeder','Cedrus libani','Cedrus')
INSERT INTO Baumart VALUES (210,'Zürgelbaum','Celtis','Celtis')
INSERT INTO Baumart VALUES (4674,'Südlicher Zürgelbaum','Celtis australis','Celtis')
INSERT INTO Baumart VALUES (4676,'Amerikanischer Zürgelbaum','Celtis occidentalis','Celtis')
INSERT INTO Baumart VALUES (2443,'Kopfeibe','Cephalotaxus fortunei','Cephalotaxus')
INSERT INTO Baumart VALUES (220,'Katsurabaum','Cercidiphyllum','Cercidiphyllum')
INSERT INTO Baumart VALUES (1523,'Judasblattbaum','Cercidiphyllum japonicum','Cercidiphyllum')
INSERT INTO Baumart VALUES (230,'Judasbaum','Cercis','Cercis')
INSERT INTO Baumart VALUES (1524,'Gemeiner Judasbaum','Cercis siliquastrum','Cercis')
INSERT INTO Baumart VALUES (710,'Zeder','Cerdus','Cerdus')
INSERT INTO Baumart VALUES (720,'Scheinzypresse','Chamaecyparis','Chamaecyparis')
INSERT INTO Baumart VALUES (2444,'Lawsons Scheinzypresse','Chamaecyparis lawsoniana','Chamaecyparis')
INSERT INTO Baumart VALUES (2446,'Blaue Säulenzypresse','Chamaecyparis lawsoniana ''Columnaris''','Chamaecyparis')
INSERT INTO Baumart VALUES (2471,'Nutka Scheinzypresse','Chamaecyparis nootkatensis','Chamaecyparis')
INSERT INTO Baumart VALUES (2475,'Hinoki-Scheinzypresse','Chamaecyparis obtusa','Chamaecyparis')
INSERT INTO Baumart VALUES (2484,'Silberzypresse','Chamaecyparis pisifera','Chamaecyparis')
INSERT INTO Baumart VALUES (240,'Hartriegel','Cornus','Cornus')
INSERT INTO Baumart VALUES (1557,'Weißer Hartriegel','Cornus alba','Cornus')
INSERT INTO Baumart VALUES (1565,'Hoher Etagenhartriegel','Cornus controversa','Cornus')
INSERT INTO Baumart VALUES (1566,'Amerikanischer Blumen-Hartriegel','Cornus florida','Cornus')
INSERT INTO Baumart VALUES (1568,'Japanischer Blumen-Hartriegel','Cornus kousa','Cornus')
INSERT INTO Baumart VALUES (1570,'Kornelkirsche','Cornus mas','Cornus')
INSERT INTO Baumart VALUES (1571,'Westamerikanischer Blumen-Hartriegel','Cornus nutallii','Cornus')
INSERT INTO Baumart VALUES (1572,'Roter Hartriegel','Cornus sanguinea','Cornus')
INSERT INTO Baumart VALUES (250,'Scheinhasel','Corylopsis','Corylopsis')
INSERT INTO Baumart VALUES (260,'Haselnuss','Corylus','Corylus')
INSERT INTO Baumart VALUES (1576,'Haselnuss','Corylus avellana','Corylus')
INSERT INTO Baumart VALUES (1577,'Goldhasel','Corylus avellana ''Aurea''','Corylus')
INSERT INTO Baumart VALUES (1578,'Korkenzieherhasel','Corylus avellana ''Contorta''','Corylus')
INSERT INTO Baumart VALUES (1590,'Baumhasel','Corylus colurna','Corylus')
INSERT INTO Baumart VALUES (1591,'Bluthasel','Corylus maxima ''Purpurea''','Corylus')
INSERT INTO Baumart VALUES (270,'Weißdorn','Crataegus','Crataegus')
INSERT INTO Baumart VALUES (1641,'Zweigriffliger Weißdorn','Crataegus laevigata','Crataegus')
INSERT INTO Baumart VALUES (1639,'Rotdorn','Crataegus laevigata ''Paul''s Scarlet''','Crataegus')
INSERT INTO Baumart VALUES (1635,'Lavalles Weißdorn, Apfeldorn','Crataegus lavallei ''Carrierei''','Crataegus')
INSERT INTO Baumart VALUES (1638,'Eingriffliger Weißdorn','Crataegus monogyna','Crataegus')
INSERT INTO Baumart VALUES (2978,'Säulen Weißdorn','Crataegus monogyna ''Stricta''','Crataegus')
INSERT INTO Baumart VALUES (1642,'Pflaumenbl. Weißdorn, Pflaumendorn','Crataegus prunifolia','Crataegus')
INSERT INTO Baumart VALUES (2503,'Sicheltanne','Cryptomeria japonica','Cryptomeria')
INSERT INTO Baumart VALUES (3257,'Spießtanne','Cunninghamia lanceolata','Cunninghamia')
INSERT INTO Baumart VALUES (2785,'Leyland-Zypresse','Cupressucyparis leclandii','Cupressucyparis')
INSERT INTO Baumart VALUES (4524,'Arizona-Zypresse','Cupressus arizonica','Cupressus')
INSERT INTO Baumart VALUES (280,'Ölweide','Elaeagnus','Elaeagnus')
INSERT INTO Baumart VALUES (1697,'Schmalblättrige Ölweide','Elaeagnus angustifolia','Elaeagnus')
INSERT INTO Baumart VALUES (1698,'Silberölweide','Elaeagnus commutata','Elaeagnus')
INSERT INTO Baumart VALUES (1699,'Essbare Ölweide','Elaeagnus muliflora','Elaeagnus')
INSERT INTO Baumart VALUES (290,'Spindelstrauch','Euonymus','Euonymus')
INSERT INTO Baumart VALUES (1726,'Pfaffenhütchen','Euonymus europaeus','Euonymus')
INSERT INTO Baumart VALUES (300,'Buche','Fagus','Fagus')
INSERT INTO Baumart VALUES (3317,'Orientalische Buche','Fagus orientalis','Fagus')
INSERT INTO Baumart VALUES (1739,'Rotbuche','Fagus sylvatica','Fagus')
INSERT INTO Baumart VALUES (1744,'Säulen-Rotbuche','Fagus sylvatica ''Dawyck''','Fagus')
INSERT INTO Baumart VALUES (1747,'Grüne Hängebuche','Fagus sylvatica ''Pendula''','Fagus')
INSERT INTO Baumart VALUES (1749,'Trauerblutbuche, Schwarzrote Hängebuche','Fagus sylvatica ''Pupurea-Pendula''','Fagus')
INSERT INTO Baumart VALUES (1748,'Blutbuche-Sämling, Purpurbuche','Fagus sylvatica ''Purpurea''','Fagus')
INSERT INTO Baumart VALUES (1741,'Veredelte Blutbuche','Fagus sylvatica ''Purpurea Latifolia''','Fagus')
INSERT INTO Baumart VALUES (310,'Esche','Fraxinus','Fraxinus')
INSERT INTO Baumart VALUES (4799,'Schmalblättrige Esche','Fraxinus angustifolia','Fraxinus')
INSERT INTO Baumart VALUES (2961,'Kleinkronige Esche ''Raywood''','Fraxinus angustifolia ''Raywood''','Fraxinus')
INSERT INTO Baumart VALUES (1761,'Gemeine Esche','Fraxinus excelsior','Fraxinus')
INSERT INTO Baumart VALUES (2867,'Goldesche','Fraxinus excelsior ''Aurea''','Fraxinus')
INSERT INTO Baumart VALUES (2762,'Einblättrige Esche','Fraxinus excelsior ''Diversifolia''','Fraxinus')
INSERT INTO Baumart VALUES (2869,'Kegelförmige Esche','Fraxinus excelsior ''Eureka''','Fraxinus')
INSERT INTO Baumart VALUES (2872,'Schmalkronige Esche','Fraxinus excelsior ''Geessink''','Fraxinus')
INSERT INTO Baumart VALUES (1764,'Hänge-Esche','Fraxinus excelsior ''Pendula''','Fraxinus')
INSERT INTO Baumart VALUES (1765,'Nichtfruchtende Straßenesche','Fraxinus excelsior ''Westhof''s Glorie''','Fraxinus')
INSERT INTO Baumart VALUES (1766,'Blumenesche','Fraxinus ornus','Fraxinus')
INSERT INTO Baumart VALUES (4800,'Rotesche','Fraxinus pennsylvanica','Fraxinus')
INSERT INTO Baumart VALUES (730,'Ginkgo, Fächerblattbaum','Ginkgo','Ginkgo')
INSERT INTO Baumart VALUES (2508,'Fächerblattbaum, Ginkgo','Ginkgo biloba','Ginkgo')
INSERT INTO Baumart VALUES (2509,'Säulen-Fächerblattbaum','Ginkgo biloba ''Fastigiata''','Ginkgo')
INSERT INTO Baumart VALUES (3258,'Hängender Fächerblattbaum','Ginkgo biloba ''Pendula''','Ginkgo')
INSERT INTO Baumart VALUES (320,'Gleditschie, Lederhülsenbaum','Gleditsia','Gleditsia')
INSERT INTO Baumart VALUES (1782,'Lederhülsenbaum','Gleditsia triacanthos','Gleditsia')
INSERT INTO Baumart VALUES (4760,'Dornenloser Lederhülsenbaum','Gleditsia triacanthos inermis','Gleditsia')
INSERT INTO Baumart VALUES (3385,'Lederhülsenbaum ''Pyramidalis''','Gleditsia triacanthos ''Pyramidalis''','Gleditsia')
INSERT INTO Baumart VALUES (1783,'Geweihbaum','Gymnocladus dioicus','Gymnocladus')
INSERT INTO Baumart VALUES (1784,'Schneeglöckchenbaum','Halesia carolina','Halesia')
INSERT INTO Baumart VALUES (330,'Zaubernuss','Hamamelis','Hamamelis')
INSERT INTO Baumart VALUES (1788,'Japanische Zaubernuss','Hamamelis japonica','Hamamelis')
INSERT INTO Baumart VALUES (1793,'Lichtmess-Zaubernuss','Hamamelis mollis','Hamamelis')
INSERT INTO Baumart VALUES (1798,'Herbstblühende Zaubernuss','Hamamelis virginiana','Hamamelis')
INSERT INTO Baumart VALUES (340,'Sanddorn','Hippophae','Hippophae')
INSERT INTO Baumart VALUES (1827,'Sanddorn','Hippophae rhamnoides','Hippophae')
INSERT INTO Baumart VALUES (1847,'Gemeine Stechpalme, Hülse','Ilex aquifolium','Ilex')
INSERT INTO Baumart VALUES (350,'Nussbaum','Juglans','Juglans')
INSERT INTO Baumart VALUES (1869,'Schwarznuss','Juglans nigra','Juglans')
INSERT INTO Baumart VALUES (1870,'Walnuss','Juglans regia','Juglans')
INSERT INTO Baumart VALUES (740,'Wachholder','Juniperus','Juniperus')
INSERT INTO Baumart VALUES (2527,'Chinesischer Wacholder','Juniperus chinensis','Juniperus')
INSERT INTO Baumart VALUES (2533,'Gemeiner Wacholder','Juniperus communis','Juniperus')
INSERT INTO Baumart VALUES (2559,'Zypressen-Wacholder','Juniperus virginiana','Juniperus')
INSERT INTO Baumart VALUES (1876,'Blasenbaum','Koelreuteria paniculata','Koelreuteria')
INSERT INTO Baumart VALUES (360,'Goldregen','Laburnum','Laburnum')
INSERT INTO Baumart VALUES (1880,'Alpen-Goldregen','Laburnum alpinum','Laburnum')
INSERT INTO Baumart VALUES (1881,'Gemeiner Goldregen','Laburnum anagyroidis','Laburnum')
INSERT INTO Baumart VALUES (1882,'Edel-Goldregen','Laburnum watereri ''Vossii''','Laburnum')
INSERT INTO Baumart VALUES (750,'Lärche','Larix','Larix')
INSERT INTO Baumart VALUES (2568,'Europäische Lärche','Larix decidua','Larix')
INSERT INTO Baumart VALUES (2570,'Japanische Lärche','Larix kaempferi','Larix')
INSERT INTO Baumart VALUES (1883,'Amberbaum','Liquidambar styraciflua','Liquidambar')
INSERT INTO Baumart VALUES (1894,'Amerikanischer Tulpenbaum','Liriodendron tulpifera','Liriodendron')
INSERT INTO Baumart VALUES (370,'Magnolie','Magnolia','Magnolia')
INSERT INTO Baumart VALUES (1919,'Sommermagnolie','Magnolia sieboldii','Magnolia')
INSERT INTO Baumart VALUES (1920,'Tulpenmagnolie','Magnolia soulangiana','Magnolia')
INSERT INTO Baumart VALUES (1927,'Sternmagnolie','Magnolia stellata','Magnolia')
INSERT INTO Baumart VALUES (380,'Kultur-Apfel','Malus','Obst')
INSERT INTO Baumart VALUES (1972,'Zierapfel (alle)','Malus ''Professor Sprenger''','Malus')
INSERT INTO Baumart VALUES (1938,'Wildapfel','Malus sylvestris','Malus')
INSERT INTO Baumart VALUES (2574,'Chinesisches Rotholz, Urwelt-Mammutbaum','Metasequoia glyptostroboides','Metasequoia')
INSERT INTO Baumart VALUES (390,'Maulbeere','Morus','Morus')
INSERT INTO Baumart VALUES (1973,'Weiße Maulbeere','Morus alba','Morus')
INSERT INTO Baumart VALUES (4762,'Schwarze Maulbeere','Morus nigra','Morus')
INSERT INTO Baumart VALUES (1976,'Scheinbuche','Nothofagus antarctica','Nothofagus')
INSERT INTO Baumart VALUES (1985,'Eisenbaum','Parrotia persica','Parrotia')
INSERT INTO Baumart VALUES (1986,'Blauglockenbaum','Paulownia tomentosa','Paulownia')
INSERT INTO Baumart VALUES (1992,'Echter Korkbaum','Phellodendron amurense','Phellodendron')
INSERT INTO Baumart VALUES (760,'Fichte','Picea','Picea')
INSERT INTO Baumart VALUES (2579,'Gemeine Fichte, Rottanne','Picea abies','Picea')
INSERT INTO Baumart VALUES (2582,'Säulenfichte','Picea abies ''Columnaris''','Picea')
INSERT INTO Baumart VALUES (2589,'Trauer-Hänge-Fichte','Picea abies ''Inversa''','Picea')
INSERT INTO Baumart VALUES (2577,'Mähnenfichte','Picea breweriana','Picea')
INSERT INTO Baumart VALUES (2578,'Engelmann-Fichte','Picea engelmannii','Picea')
INSERT INTO Baumart VALUES (2606,'Weißfichte','Picea glauca','Picea')
INSERT INTO Baumart VALUES (2611,'Schwarzfichte','Picea mariana','Picea')
INSERT INTO Baumart VALUES (2614,'Serbische Fichte','Picea omorica','Picea')
INSERT INTO Baumart VALUES (2617,'Kaukasusfichte','Picea orientalis','Picea')
INSERT INTO Baumart VALUES (2621,'Stechfichte','Picea pungens','Picea')
INSERT INTO Baumart VALUES (2622,'Blaue Stechfichte, Blaufichte','Picea pungens glauca','Picea')
INSERT INTO Baumart VALUES (2635,'Sitkafichte','Picea sitchensis','Picea')
INSERT INTO Baumart VALUES (770,'Kiefer','Pinus','Pinus')
INSERT INTO Baumart VALUES (2636,'Fuchsschwanzkiefer','Pinus aristata','Pinus')
INSERT INTO Baumart VALUES (2638,'Zirbelkiefer, Arve','Pinus cembra','Pinus')
INSERT INTO Baumart VALUES (2644,'Drehkiefer','Pinus contorta','Pinus')
INSERT INTO Baumart VALUES (1736,'Murray''s-Drehkiefer, Murraykiefer','Pinus contorta murrayana','Pinus')
INSERT INTO Baumart VALUES (2651,'Jeffrey''s Kiefer','Pinus jeffreyi','Pinus')
INSERT INTO Baumart VALUES (2650,'Schlangenhautkiefer','Pinus leucodermis','Pinus')
INSERT INTO Baumart VALUES (2654,'Bergkiefer, Latsche','Pinus mugo','Pinus')
INSERT INTO Baumart VALUES (1762,'Schwarzkiefer','Pinus nigra','Pinus')
INSERT INTO Baumart VALUES (2660,'Österreichische Schwarzkiefer','Pinus nigra austriaca','Pinus')
INSERT INTO Baumart VALUES (2662,'Mädchenkiefer','Pinus parviflora','Pinus')
INSERT INTO Baumart VALUES (2664,'Rumelische Kiefer, Mazedonische Kiefer','Pinus peuce','Pinus')
INSERT INTO Baumart VALUES (2665,'Gelbkiefer','Pinus ponderosa','Pinus')
INSERT INTO Baumart VALUES (2668,'Zapfenkiefer','Pinus schwerinii','Pinus')
INSERT INTO Baumart VALUES (2643,'Sibirische Kiefer','Pinus sibirica','Pinus')
INSERT INTO Baumart VALUES (2672,'Weymouthskiefer, Strobe','Pinus strobus','Pinus')
INSERT INTO Baumart VALUES (2669,'Gemeine Kiefer','Pinus sylvestris','Pinus')
INSERT INTO Baumart VALUES (4323,'Hakenkiefer','Pinus uncinata','Pinus')
INSERT INTO Baumart VALUES (2648,'Tränenkiefer','Pinus wallichiana','Pinus')
INSERT INTO Baumart VALUES (400,'Platane','Platanus','Platanus')
INSERT INTO Baumart VALUES (2019,'Ahornblättrige Platane','Platanus acerifolia','Platanus')
INSERT INTO Baumart VALUES (1583,'Morgenländische Platane','Platanus orientalis','Platanus')
INSERT INTO Baumart VALUES (410,'Pappel','Populus','Populus')
INSERT INTO Baumart VALUES (4802,'Silberpappel','Populus alba','Populus')
INSERT INTO Baumart VALUES (2023,'Balsampappel','Populus balsamifera','Popolus')
INSERT INTO Baumart VALUES (2024,'Berliner Lorbeerpappel','Populus berolinensis','Populus')
INSERT INTO Baumart VALUES (4803,'Kanadische Holzpappel','Populus canadensis','Populus')
INSERT INTO Baumart VALUES (2027,'Graupappel','Populus canescens','Populus')
INSERT INTO Baumart VALUES (3114,'Schwarzpappel','Populus nigra','Populus')
INSERT INTO Baumart VALUES (2036,'Pyramidenpappel','Populus nigra ''Italica''','Populus')
INSERT INTO Baumart VALUES (2037,'Birkenpappel','Populus simonii','Populus')
INSERT INTO Baumart VALUES (2039,'Zitterpappel, Espe','Populus tremula','Populus')
INSERT INTO Baumart VALUES (2040,'Säulen-Zitterpappel','Populus tremula ''Erecta''','Populus')
INSERT INTO Baumart VALUES (2042,'Hänge-Zitterpappel','Populus tremula ''Pendula''','Populus')
INSERT INTO Baumart VALUES (2043,'Westliche Balsampappel','Populus trichocarpa','Populus')
INSERT INTO Baumart VALUES (420,'Pflaume, Kirsche, Pfirsisch','Prunus','Obst')
INSERT INTO Baumart VALUES (2061,'Vogelkirsche, Wildkirsche','Prunus avium','Prunus')
INSERT INTO Baumart VALUES (2062,'Süßkirsche','Prunus avium C.','Obst')
INSERT INTO Baumart VALUES (2064,'Wildpflaume','Prunus cerasifera','Prunus')
INSERT INTO Baumart VALUES (2065,'Blutpflaume','Prunus cerasifera ''Nigra''','Prunus')
INSERT INTO Baumart VALUES (3115,'Sauerkirsche','Prunus cerasus','Obst')
INSERT INTO Baumart VALUES (3116,'Haus-Pflaume','Prunus domestica','Obst')
INSERT INTO Baumart VALUES (2969,'Sandkirsche','Prunus fruticosa','Prunus')
INSERT INTO Baumart VALUES (2870,'Lorbeerkirsche, Kirschlorbeer','Prunus laurocerasus','Prunus')
INSERT INTO Baumart VALUES (2076,'Steinweichsel','Prunus mahaleb','Prunus')
INSERT INTO Baumart VALUES (2077,'Traubenkirsche','Prunus padus','Prunus')
INSERT INTO Baumart VALUES (2078,'Pfirsisch','Prunus persica','Prunus')
INSERT INTO Baumart VALUES (2080,'Spätbl. Traubenkirsche','Prunus serotina','Prunus')
INSERT INTO Baumart VALUES (2092,'Schlehe / Schwarzdorn','Prunus spinosa','Prunus')
INSERT INTO Baumart VALUES (2676,'Douglasie, Douglasfichte, Mirbel','Pseudotsuga menziesii','Pseudotsuga')
INSERT INTO Baumart VALUES (430,'Flügelnuss','Pterocaria','Pterocaria')
INSERT INTO Baumart VALUES (440,'Birne','Pyrus','Obst')
INSERT INTO Baumart VALUES (2964,'Stadtbirne','Pyrus calleryana','Pyrus')
INSERT INTO Baumart VALUES (2122,'Holzbirne, Gemeine Birne','Pyrus communis','Pyrus')
INSERT INTO Baumart VALUES (450,'Eiche','Quercus','Quercus')
INSERT INTO Baumart VALUES (2125,'Zerreiche','Quercus cerris','Quercus')
INSERT INTO Baumart VALUES (2126,'Scharlach-Eiche','Quercus coccinea','Quercus')
INSERT INTO Baumart VALUES (4475,'Japan. Kaisereiche, Daimio-Eiche','Quercus dentata','Quercus')
INSERT INTO Baumart VALUES (2127,'Ungarische Eiche','Quercus frainetto','Quercus')
INSERT INTO Baumart VALUES (3344,'Steineiche','Quercus ilex','Quercus')
INSERT INTO Baumart VALUES (2129,'Sumpfeiche','Quercus palustris','Quercus')
INSERT INTO Baumart VALUES (2132,'Traubeneiche, Wintereiche','Quercus petraea','Quercus')
INSERT INTO Baumart VALUES (4807,'Flaumeiche','Quercus pubescens','Quercus')
INSERT INTO Baumart VALUES (2130,'Stieleiche, Sommereiche','Quercus robur','Quercus')
INSERT INTO Baumart VALUES (2131,'Pyramideneiche','Quercus robur ''Fastigiata''','Quercus')
INSERT INTO Baumart VALUES (2134,'Amerikanische Roteiche','Quercus rubra','Quercus')
INSERT INTO Baumart VALUES (3348,'Amerikanische Goldeiche','Quercus rubra ''Aurea''','Quercus')
INSERT INTO Baumart VALUES (2135,'Wintergrüne Eiche','Quercus turneri ''Pseudoturneri''','Quercus')
INSERT INTO Baumart VALUES (460,'Kreuzdorn','Rhamnus','Rhamnus')
INSERT INTO Baumart VALUES (2136,'Purgier-Kreuzdorn','Rhamnus catharticus','Rhamnus')
INSERT INTO Baumart VALUES (2137,'Faulbaum','Rhamnus frangula','Rhamnus')
INSERT INTO Baumart VALUES (470,'Sumach','Rhus','Rhus')
INSERT INTO Baumart VALUES (2139,'Essigbaum','Rhus glabra','Rhus')
INSERT INTO Baumart VALUES (2141,'Hirschkolben-Sumach, Essigbaum','Rhus typhina','Rhus')
INSERT INTO Baumart VALUES (480,'Robinie','Robinia','Robinia')
INSERT INTO Baumart VALUES (2156,'Robinie, Scheinakazie','Robinia pseudoacacia','Robinia')
INSERT INTO Baumart VALUES (2157,'Kegel-Robinie, Kegel-Akazie','Robinia pseudoacacia ''Bessoniana''','Robinia')
INSERT INTO Baumart VALUES (2160,'Straßen-Robinie, Straßen-Akazie','Robinia pseudoacacia ''Monophylla''','Robinia')
INSERT INTO Baumart VALUES (4510,'Pyramiden-Robinie, Pyramiden-Akazie','Robinia pseudoacacia ''Pyramidalis''','Robinia')
INSERT INTO Baumart VALUES (2162,'Korkenzieher-Robinie, Korkenzieher-Akazie','Robinia pseudoacacia ''Tortuosa''','Robinia')
INSERT INTO Baumart VALUES (2163,'Kugel-Robinie, Kugel-Akazie','Robinia pseudoacacia ''Umbraculifera''','Robinia')
INSERT INTO Baumart VALUES (490,'Weide','Salix','Salix')
INSERT INTO Baumart VALUES (2182,'Silberweide','Salix alba','Salix')
INSERT INTO Baumart VALUES (2844,'Kegelförmige Silberweide','Salix alba ''Chermesina''','Salix')
INSERT INTO Baumart VALUES (2184,'Silberweide ''Liempde''','Salix alba ''Liempde''','Salix')
INSERT INTO Baumart VALUES (2185,'Straßenweide','Salix alba ''Sericea''','Salix')
INSERT INTO Baumart VALUES (5439,'Silberweide ''Taucha''','Salix alba ''Taucha''','Salix')
INSERT INTO Baumart VALUES (2186,'Trauerweide','Salix alba ''Tristis''','Salix')
INSERT INTO Baumart VALUES (2190,'Ohrweide','Salix aurita','Salix')
INSERT INTO Baumart VALUES (2194,'Salweide','Salix caprea','Salix')
INSERT INTO Baumart VALUES (2198,'Graue Weide, Aschweide','Salix cinerea','Salix')
INSERT INTO Baumart VALUES (2204,'Bruchweide, Knackweide','Salix fragilis','Salix')
INSERT INTO Baumart VALUES (2211,'Korkenzieherweide','Salix matsudana ''Tortuosa''','Salix')
INSERT INTO Baumart VALUES (2223,'Korbweide','Salix viminalis','Salix')
INSERT INTO Baumart VALUES (500,'Holunder','Sambucus','Sambucus')
INSERT INTO Baumart VALUES (2227,'Schwarzer Holunder','Sambucus nigra','Sambucus')
INSERT INTO Baumart VALUES (2232,'Roter Holunder, Traubenholunder','Sambucus racemosa','Sambucus')
INSERT INTO Baumart VALUES (2680,'Kalifornischer Mammutbaum','Sequoiadendron giganteum','Sequoiadendron')
INSERT INTO Baumart VALUES (2237,'Schnurbaum','Sophora japonica','Sophora')
INSERT INTO Baumart VALUES (510,'Eberesche','Sorbus','Sorbus')
INSERT INTO Baumart VALUES (2242,'Amerikanische Eberesche','Sorbus americana','Sorbus')
INSERT INTO Baumart VALUES (2243,'Mehlbeere','Sorbus aria','Sorbus')
INSERT INTO Baumart VALUES (2247,'Vogelbeere, Eberesche','Sorbus aucuparia','Sorbus')
INSERT INTO Baumart VALUES (2255,'Essbare Eberesche','Sorbus aucuparia ''Edulis''','Sorbus')
INSERT INTO Baumart VALUES (2248,'Säulen-Eberesche, Pyramiden-Eberesche','Sorbus aucuparia ''Fastigiata''','Sorbus')
INSERT INTO Baumart VALUES (2829,'Speierling','Sorbus domestica','Sorbus')
INSERT INTO Baumart VALUES (2266,'Schwedische Mehlbeere','Sorbus intermedia','Sorbus')
INSERT INTO Baumart VALUES (2268,'Park-Mehlbeere, Breitblättrige Mehlbeere','Sorbus latifolia','Sorbus')
INSERT INTO Baumart VALUES (4810,'Thüringische Eberesche','Sorbus thuringiaca','Sorbus')
INSERT INTO Baumart VALUES (2272,'Elsbeere','Sorbus torminalis','Sorbus')
INSERT INTO Baumart VALUES (2273,'Vielfiedrige Eberesche','Sorbus vilmorinii','Sorbus')
INSERT INTO Baumart VALUES (2298,'Japanischer Storaxbaum','Styrax japonica','Styrax')
INSERT INTO Baumart VALUES (520,'Flieder','Syringa','Syringa')
INSERT INTO Baumart VALUES (2324,'Wild-Flieder','Syringa vulgaris','Syringa')
INSERT INTO Baumart VALUES (2681,'Sumpfzypresse','Taxodium districhum','Taxodium')
INSERT INTO Baumart VALUES (2682,'Eibe','Taxus baccata','Taxus')
INSERT INTO Baumart VALUES (780,'Lebensbaum','Thuja','Thuja')
INSERT INTO Baumart VALUES (2718,'Abendländischer Lebensbaum','Thuja occidentalis','Thuja')
INSERT INTO Baumart VALUES (2434,'Morgenländischer Lebensbaum','Thuja orientalis','Thuja')
INSERT INTO Baumart VALUES (2742,'Riesenlebensbaum','Thuja plicata','Thuja')
INSERT INTO Baumart VALUES (2747,'Japanischer Lebensbaum','Thuja standishii','Thuja')
INSERT INTO Baumart VALUES (530,'Linde','Tilia','Tilia')
INSERT INTO Baumart VALUES (4811,'Amerikanische Linde','Tilia americana','Tilia')
INSERT INTO Baumart VALUES (2352,'Riesenblättrige Linde','Tilia americana ''Nova''','Tilia')
INSERT INTO Baumart VALUES (2353,'Winterlinde','Tilia cordata','Tilia')
INSERT INTO Baumart VALUES (4580,'Amerikanische Stadtlinde','Tilia cordata ''Greenspire''','Tilia')
INSERT INTO Baumart VALUES (3513,'Kleinkronige Winterlinde','Tilia cordata ''Müllerklein''','Tilia')
INSERT INTO Baumart VALUES (2822,'Kleinblättrige Winterlinde','Tilia cordata ''Sheridan''','Tilia')
INSERT INTO Baumart VALUES (2354,'Krimlinde','Tilia euchlora','Tilia')
INSERT INTO Baumart VALUES (5549,'Säulenförmige Krimlinde','Tilia euchlora ''Pallida Fastigiata''','Tilia')
INSERT INTO Baumart VALUES (2355,'Holländische Linde','Tilia europaea','Tilia')
INSERT INTO Baumart VALUES (2357,'Kaiserlinde','Tilia europaea ''Pallida''','Tilia')
INSERT INTO Baumart VALUES (2777,'Hänge-Silber-Linde, Großblättrige Silberlinde','Tilia petiolaris','Tilia')
INSERT INTO Baumart VALUES (2358,'Sommerlinde','Tilia platyphyllos','Tilia')
INSERT INTO Baumart VALUES (3398,'Gold-Sommerlinde','Tilia platyphyllos ''Aurea''','Tilia')
INSERT INTO Baumart VALUES (3371,'Großblättrige Sommerlinde','Tilia platyphyllos ''Laciniata''','Tilia')
INSERT INTO Baumart VALUES (2359,'Silberlinde','Tilia tomentosa','Tilia')
INSERT INTO Baumart VALUES (790,'Hemlocktanne','Tsuga','Tsuga')
INSERT INTO Baumart VALUES (2751,'Kanadische Hemlocktanne','Tsuga canadensis','Tsuga')
INSERT INTO Baumart VALUES (2756,'Grüne Hemlocktanne','Tsuga heterophylla','Tsuga')
INSERT INTO Baumart VALUES (540,'Ulme','Ulmus','Ulmus')
INSERT INTO Baumart VALUES (2361,'Feldulme','Ulmus carpinifolia','Ulmus')
INSERT INTO Baumart VALUES (2362,'Goldulme','Ulmus carpinifolia ''Wredei''','Ulmus')
INSERT INTO Baumart VALUES (2363,'Bergulme','Ulmus glabra','Ulmus')
INSERT INTO Baumart VALUES (2960,'Exter-Ulme','Ulmus glabra ''Exoniensis''','Ulmus')
INSERT INTO Baumart VALUES (2365,'Stadt-Ulme, Holländische Ulme','Ulmus hollandica','Ulmus')
INSERT INTO Baumart VALUES (3136,'Flatter-Ulme','Ulmus laevis','Ulmus')
INSERT INTO Baumart VALUES (3747,'Resistente Ulme','Ulmus ''Resista''','Ulmus')
INSERT INTO Baumart VALUES (550,'Zelkove','Zelkova','Zelkova')
INSERT INTO Baumart VALUES (2402,'Kaukasus-Zelkove','Zelkova carpinifolia','Zelkova')
INSERT INTO Baumart VALUES (2403,'Keaki-Zelkove','Zelkova serrata','Zelkova')
INSERT INTO Baumart VALUES (30,'Laubbaum','','')
INSERT INTO Baumart VALUES (40,'Nadelbaum','','')

   END_SQL
*)

ENTITY Schiefstand_Baum;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Schiefstand_Baum VALUES (0,'kein')
INSERT INTO Schiefstand_Baum VALUES (1,'ja, ohne Angabe')
INSERT INTO Schiefstand_Baum VALUES (2,'zur Fahrbahn')
INSERT INTO Schiefstand_Baum VALUES (3,'von der Fahrbahn')
INSERT INTO Schiefstand_Baum VALUES (4,'parallel zur Fahrbahn')

   END_SQL
*)

ENTITY Zustandsbeurteilung_Baum;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Zustandsbeurteilung_Baum VALUES (1,'gesund')
INSERT INTO Zustandsbeurteilung_Baum VALUES (2,'sehr schwach geschädigt')
INSERT INTO Zustandsbeurteilung_Baum VALUES (3,'mittelstark geschädigt')
INSERT INTO Zustandsbeurteilung_Baum VALUES (4,'stark geschädigt')
INSERT INTO Zustandsbeurteilung_Baum VALUES (5,'absterbend bis tot')

   END_SQL
*)

ENTITY Baumschaden
SUBTYPE OF (historisches_Objekt);
--- Attribute:
   Kronenschaeden                : OPTIONAL Kronenschaden;
   Einstufung_Kronenschaeden     : OPTIONAL Schadenseinstufung_Baum; 
   Stammschaeden                 : OPTIONAL Stammschaden;
   Einstufung_Stammschaeden      : OPTIONAL Schadenseinstufung_Baum;
   Stammfussschaden              : OPTIONAL Stammfussschaden;
   Einstufung_Stammfussschaden   : OPTIONAL Schadenseinstufung_Baum;
   Wurzelschaeden                : OPTIONAL Wurzelschaden;
   Einstufung_Wurzelschaeden     : OPTIONAL Schadenseinstufung_Baum;
   Schadensursache               : OPTIONAL Schadensursache_Baum;
INVERSE
   von_Baum                      : SET[0:?] OF Baum FOR hat_Baumschaeden;
END_ENTITY;

ENTITY Kronenschaden;
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
   Schadenseinstufung            : OPTIONAL Schadenseinstufung_Baum;
UNIQUE
   Kennung_eindeutig : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Kronenschaden VALUES (1,'Totholz (einzelne Äste über DU 5-10 cm)')
INSERT INTO Kronenschaden VALUES (2,'Krone vollständig ohne Blätter (Krone abgestorben)')
INSERT INTO Kronenschaden VALUES (3,'Wipfeldürre')
INSERT INTO Kronenschaden VALUES (4,'schütteres Laubdach (wenig Blätter)')
INSERT INTO Kronenschaden VALUES (5,'ungewöhnlich frühzeitige Laubfärbung')
INSERT INTO Kronenschaden VALUES (6,'Vergilbungen / Verfärbungen der Blätter')
INSERT INTO Kronenschaden VALUES (7,'Schädlingsbefall (zerfressene Blätter)')
INSERT INTO Kronenschaden VALUES (8,'Astabbrüche (Wind / Eisbruch)')
INSERT INTO Kronenschaden VALUES (9,'Aststümpfe')
INSERT INTO Kronenschaden VALUES (10,'Astmorschungen')
INSERT INTO Kronenschaden VALUES (11,'Asthöhlen')
INSERT INTO Kronenschaden VALUES (12,'Astausbrüche')
INSERT INTO Kronenschaden VALUES (13,'Risse oder Spalten an Gabelungen u. Kronenansatz')
INSERT INTO Kronenschaden VALUES (14,'Risse oder Spalten an Starkästen (DU 5-10 cm)')
INSERT INTO Kronenschaden VALUES (15,'Risse oder Spalten an Starkästen (DU > 10 cm)')
INSERT INTO Kronenschaden VALUES (16,'Wunden/Rindenschaden an Starkästen (DU 5-10 cm)')
INSERT INTO Kronenschaden VALUES (17,'Wunden/Rindenschaden an Starkästen (DU >10 cm)')
INSERT INTO Kronenschaden VALUES (18,'eingefaulte Astungswunden')
INSERT INTO Kronenschaden VALUES (19,'Vergabelungen (Druckzwiesel=V-förmig) mit eingew. Rinde')
INSERT INTO Kronenschaden VALUES (20,'Wassertaschen')
INSERT INTO Kronenschaden VALUES (21,'Baumfremder Bewuchs')
INSERT INTO Kronenschaden VALUES (22,'Alte Einbauten zur Kronensicherung')
INSERT INTO Kronenschaden VALUES (23,'Pilzfruchtkörper an Gabelungen')
INSERT INTO Kronenschaden VALUES (24,'Pilzfruchtkörper an übrigen Ästen')
INSERT INTO Kronenschaden VALUES (99,'Sonstiges')

   END_SQL
*)

ENTITY Stammschaden;
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
   Schadenseinstufung            : OPTIONAL Schadenseinstufung_Baum;
UNIQUE
   Kennung_eindeutig : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Stammschaden VALUES (25,'Schrägstand/Schieflage')
INSERT INTO Stammschaden VALUES (26,'Bohrmehl/Insekten')
INSERT INTO Stammschaden VALUES (27,'Ausfluss/Schleimfluss')
INSERT INTO Stammschaden VALUES (28,'Ausfluss/Harzfluss')
INSERT INTO Stammschaden VALUES (29,'Alte Stahlgewindestangen')
INSERT INTO Stammschaden VALUES (30,'Alte Plomben')
INSERT INTO Stammschaden VALUES (31,'Rinden/Holzschaden')
INSERT INTO Stammschaden VALUES (32,'Stammrisse')
INSERT INTO Stammschaden VALUES (33,'Faulstellen')
INSERT INTO Stammschaden VALUES (34,'Höhlungen')
INSERT INTO Stammschaden VALUES (35,'Pilzbefall')
INSERT INTO Stammschaden VALUES (36,'Baumfremder Bewuchs')
INSERT INTO Stammschaden VALUES (99,'Sonstiges')

   END_SQL
*)

ENTITY Stammfussschaden;
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
   Schadenseinstufung            : OPTIONAL Schadenseinstufung_Baum;
UNIQUE
   Kennung_eindeutig : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Stammfussschaden VALUES (99,'Sonstiges')

   END_SQL
*)

ENTITY Wurzelschaden;
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
   Schadenseinstufung            : OPTIONAL Schadenseinstufung_Baum;
UNIQUE
   Kennung_eindeutig : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Wurzelschaden VALUES (37,'Bodenaufwölbungen/Bodenrisse')
INSERT INTO Wurzelschaden VALUES (38,'Stolperwurzeln')
INSERT INTO Wurzelschaden VALUES (39,'Anhebung der Befestigung')
INSERT INTO Wurzelschaden VALUES (40,'Ausfluss/Schleimfluss')
INSERT INTO Wurzelschaden VALUES (41,'Ausfluss/Harzfluss')
INSERT INTO Wurzelschaden VALUES (42,'Bohrmehl/Insekten')
INSERT INTO Wurzelschaden VALUES (43,'Stockaustriebe')
INSERT INTO Wurzelschaden VALUES (44,'Verdickung des unteren Stammes')
INSERT INTO Wurzelschaden VALUES (45,'Adventivwurzelbildung')
INSERT INTO Wurzelschaden VALUES (46,'Rinden/Holzschaden')
INSERT INTO Wurzelschaden VALUES (47,'Faulstellen')
INSERT INTO Wurzelschaden VALUES (48,'Pilzbefall')
INSERT INTO Wurzelschaden VALUES (49,'Risse')
INSERT INTO Wurzelschaden VALUES (50,'Wulstbildung')
INSERT INTO Wurzelschaden VALUES (51,'Höhlungen')
INSERT INTO Wurzelschaden VALUES (99,'Sonstiges')

   END_SQL
*)

ENTITY Schadensursache_Baum;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Schadensursache_Baum VALUES (1,'Anfahrschaden')
INSERT INTO Schadensursache_Baum VALUES (2,'Blitzschaden')
INSERT INTO Schadensursache_Baum VALUES (3,'Sturmschaden')
INSERT INTO Schadensursache_Baum VALUES (4,'Eisbruch')
INSERT INTO Schadensursache_Baum VALUES (5,'Naturereignis')
INSERT INTO Schadensursache_Baum VALUES (6,'Straßenbaumaßnahme')
INSERT INTO Schadensursache_Baum VALUES (7,'Straßenunterhaltung')
INSERT INTO Schadensursache_Baum VALUES (8,'sonstige Maßnahme')
INSERT INTO Schadensursache_Baum VALUES (9,'Sonstige')

   END_SQL
*)

ENTITY Schadenseinstufung_Baum;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Schadenseinstufung_Baum VALUES (1,'kein Schaden')
INSERT INTO Schadenseinstufung_Baum VALUES (2,'Schaden unbestimmt')
INSERT INTO Schadenseinstufung_Baum VALUES (3,'leichter Schaden')
INSERT INTO Schadenseinstufung_Baum VALUES (4,'mittelschwerer Schaden')
INSERT INTO Schadenseinstufung_Baum VALUES (5,'schwerer Schaden')

   END_SQL
*)

ENTITY Standortbeschreibung_Baum
SUBTYPE OF (Punktobjekt_stat);
--- Attribute:
   Lagebeschreibung              : OPTIONAL Lagebeschreibung_Baum;
--- Relationen:
INVERSE
   von_Baum                      : SET [0:?] OF Baum FOR hat_Standort;
END_ENTITY;

ENTITY Lagebeschreibung_Baum;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Lagebeschreibung_Baum VALUES (1,'Baum auf Trennstreifen zwischen Radweg und Straße')
INSERT INTO Lagebeschreibung_Baum VALUES (2,'Baum zwischen Radweg und Graben')
INSERT INTO Lagebeschreibung_Baum VALUES (3,'Baum zwischen Radweg und benachbartem Grundstück')
INSERT INTO Lagebeschreibung_Baum VALUES (4,'Baum im Geh- oder Radweg')
INSERT INTO Lagebeschreibung_Baum VALUES (5,'Baum in Pflasterfläche')
INSERT INTO Lagebeschreibung_Baum VALUES (6,'Baum hinter Gehweg')

   END_SQL
*)

ENTITY Bewuchs
SUPERTYPE OF (ONEOF(Baum))
SUBTYPE OF (historisches_Objekt, Objekt_mit_ID);
--- Attribute:
   Schutzstatus                  : OPTIONAL SET[1:?] OF Schutzstatus_Bewuchs;
   Zustaendigkeit                : OPTIONAL STRING;
   Verkehrsraumeinschraenkung    : OPTIONAL BOOLEAN;
--- Relationen:
   hat_Erfassungsqualitaet       : Erfassungsqualitaet;
   hat_Pflegemassnahmen          : OPTIONAL SET[1:?] OF Pflegemassnahme_Bewuchs;
   hat_Auspraegungen             : OPTIONAL SET[1:?] OF geometrische_Auspraegung;
   hat_Dokument                  : OPTIONAL SET[1:?] OF Dokument_abstrakt;
   auf_Rastanlage                : OPTIONAL SET[1:?] OF Rastanlage;
END_ENTITY;

ENTITY Schutzstatus_Bewuchs;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Schutzstatus_Bewuchs VALUES (1,'Landschaftsschutzgebiet (LSG)')
INSERT INTO Schutzstatus_Bewuchs VALUES (2,'Naturschutzgebiet (NSG)')
INSERT INTO Schutzstatus_Bewuchs VALUES (3,'Naturdenkmal (ND)')
INSERT INTO Schutzstatus_Bewuchs VALUES (4,'Fauna/Flora/Habitat (FFH)')
INSERT INTO Schutzstatus_Bewuchs VALUES (5,'geschützter Landschaftsbestandteil')

   END_SQL
*)

ENTITY Pflegemassnahme_Bewuchs
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Art_der_Pflegemassnahme       : Art_der_Pflegemassnahme;
   Bezeichnung                   : OPTIONAL STRING;
   Datum_der_Massnahme           : OPTIONAL Datum;
   Quelle_der_Massnahme          : OPTIONAL Quelle_Pflegemassnahme;
   Art_des_Leistungserbringers   : OPTIONAL Art_Leistungserbringer_Pflege;
   Adresse_Leistungserbringer    : OPTIONAL STRING;
   Kosten                        : OPTIONAL EURO;
--- Relationen:
INVERSE
   zu_Bewuchs                    : SET[0:?] OF Bewuchs FOR hat_Pflegemassnahmen;
END_ENTITY;

ENTITY Art_der_Pflegemassnahme;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_der_Pflegemassnahme VALUES (1,'Kronenschnitt f. Lichtraumprofil')
INSERT INTO Art_der_Pflegemassnahme VALUES (2,'Totholzbeseitigung')
INSERT INTO Art_der_Pflegemassnahme VALUES (3,'Kronenauslichtungsschnitt')
INSERT INTO Art_der_Pflegemassnahme VALUES (4,'Kroneneinkürzung')
INSERT INTO Art_der_Pflegemassnahme VALUES (5,'Baumsicherungsschnitt')
INSERT INTO Art_der_Pflegemassnahme VALUES (6,'Astabsägen')
INSERT INTO Art_der_Pflegemassnahme VALUES (7,'Stammaustriebe entfernen')
INSERT INTO Art_der_Pflegemassnahme VALUES (8,'Stockaustriebe entfernen')
INSERT INTO Art_der_Pflegemassnahme VALUES (9,'Baumwunde behandeln')
INSERT INTO Art_der_Pflegemassnahme VALUES (10,'Wurzelschadensbehandlung')
INSERT INTO Art_der_Pflegemassnahme VALUES (11,'Baumscheibe sanieren')
INSERT INTO Art_der_Pflegemassnahme VALUES (12,'Baum fällen')
INSERT INTO Art_der_Pflegemassnahme VALUES (13,'Baum fällen, Verkehrssicherungspflicht')
INSERT INTO Art_der_Pflegemassnahme VALUES (14,'Baum fällen, Baumaßnahme')
INSERT INTO Art_der_Pflegemassnahme VALUES (99,'Pflege erforderlich')
INSERT INTO Art_der_Pflegemassnahme VALUES (0,'keine Pflege erforderlich')

   END_SQL
*)

ENTITY Quelle_Pflegemassnahme;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(2) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(2);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Quelle_Pflegemassnahme VALUES ('FR','frei')
INSERT INTO Quelle_Pflegemassnahme VALUES ('BS','Baumschau')
INSERT INTO Quelle_Pflegemassnahme VALUES ('SC','Schäden')

   END_SQL
*)

ENTITY Art_Leistungserbringer_Pflege;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_Leistungserbringer_Pflege VALUES ('S','Straßenbauverwaltung')
INSERT INTO Art_Leistungserbringer_Pflege VALUES ('F','Fremdleistung')

   END_SQL
*)

ENTITY Baumreihe
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Art_der_Baumreihe             : Baumart;
   Zustaendigkeit                : OPTIONAL STRING;
--- Relationen:
   besteht_aus_Abschnitten       : LIST [1:?] OF Baumreihenabschnitt;
END_ENTITY;

ENTITY Baumreihenabschnitt
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Anzahl_der_enthaltenen_Baeume : OPTIONAL INTEGER;
--- Relationen:
   hat_Erfassungsqualitaet       : Erfassungsqualitaet;
   beginnt_bei_Baum              : Baum;
   endet_bei_Baum                : Baum;
   hat_Baum                      : OPTIONAL SET[1:?] OF Baum;
INVERSE
   von_Baumreihe                 : SET[0:?] OF Baumreihe
                                       FOR besteht_aus_Abschnitten;
   von_Allee                     : SET[0:1] OF Allee FOR besteht_aus_Abschnitten;
END_ENTITY;

ENTITY Allee
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
--- Relationen:
   besteht_aus_Abschnitten       : LIST[2:?] OF Baumreihenabschnitt;
END_ENTITY;


END_SCHEMA; -- Oekologie
SCHEMA MELVER;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073
Fortschreibung MELVER gemäß N0077
Änderung des MELVER-Datenschemas gemäß N0083

09.09.2005 - 1.010 (1.010)
Formale Versionierung

29.06.2004 - 1.001 (1.009)
Kürzung von Bezeichnern (SQL)

03.09.2003 - 1.000 (1.008)
Aufnahme des Schemas MELVER in den OKSTRA

*)


REFERENCE FROM Strassennetz (Strassenklasse);

REFERENCE FROM Administration (Verwaltungsbezirk_abstrakt,
                               Strassenbaudienststelle_abstrakt,
                               Art_Baulasttraeger);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Datum,Anzahl_zweistellig,EURO);OKSTRA_Schluesseltabelle,
                                   Datum,Anzahl_zweistellig,EURO);

REFERENCE FROM Grunderwerb (Land);

ENTITY MELVER
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Lfd_Nr                        : STRING(5);
--- Relationen :
   hat_administrative_Angaben    : administrative_Angaben_MELVER;
   hat_Angaben_zur_Bauleistung   : Angaben_zur_Bauleistung_MELVER;
   hat_Angaben_zu_Bew_Biet_Angeb : Angaben_zu_Bew_Biet_Ang_MELVER;
   hat_Angaben_zur_Vergabe       : Angaben_zur_Vergabe_MELVER;
   hat_vertragl_Best_und_Massn   : vertragl_Best_und_Massn_MELVER;
   hat_Angaben_zur_Auftragssumme : Angaben_z_Auftragssumme_MELVER;
END_ENTITY;

ENTITY administrative_Angaben_MELVER
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Bauvertragsnummer             : STRING(30);
   CPV_Nr                        : OPTIONAL STRING(9);
   CPV_Nr_2                      : OPTIONAL STRING(9);
   CPV_Nr_3                      : OPTIONAL STRING(9);
   Bezeichnung_der_Bauleistung   : STRING;
   Bezeichnung_der_Bauleistung_2 : OPTIONAL STRING;
   Zusatzfeld                    : OPTIONAL STRING(2);
   Institut                      : OPTIONAL STRING(25);
   Art_Baulasttraeger            : Art_Baulasttraeger;   
--- Relationen :
   in_Bundesland                 : SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
   in_Baudienststelle            : SET [1:?] OF Strassenbaudienststelle_abstrakt; (* D *)
   in_Kreis_Gemeinde             : SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
   hat_Haushalts_Buchungsstelle  : Haushalts_Buchungsst_MELVER;
   hat_Bearbeiter                : Bearbeiter_MELVER;
INVERSE
   von_MELVER_Datensatz          : SET [0:?] OF MELVER
                                       FOR hat_administrative_Angaben;
END_ENTITY;

ENTITY Haushalts_Buchungsst_MELVER
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Kapitel                       : INTEGER;
   Titel                         : INTEGER;
   Funktion                      : INTEGER;
--- Relationen :
INVERSE
   zu_administrative_Angaben     : SET [0:?] OF administrative_Angaben_MELVER
                                       FOR hat_Haushalts_Buchungsstelle;
END_ENTITY;

ENTITY Bearbeiter_MELVER
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Name_Bearbeiter               : STRING;
   Tel_Nr_Bearbeiter             : STRING;
--- Relationen :
INVERSE
   von_administrative_Angaben    : SET [0:?] OF administrative_Angaben_MELVER
                                       FOR hat_Bearbeiter;
END_ENTITY;

ENTITY Angaben_zur_Bauleistung_MELVER
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Strassenklasse                : Strassenklasse;
   Art_der_Baumassnahme_Phase    : Art_der_Baumassnahme_P_MELVER;
   Art_der_Baumassnahme_Bereich  : Art_der_Baumassnahme_B_MELVER;
   Bauzeit_in_Monaten            : Anzahl_zweistellig;
--- Relationen :
INVERSE
   von_MELVER_Datensatz          : SET [0:?] OF MELVER
                                       FOR hat_Angaben_zur_Bauleistung;
END_ENTITY;

ENTITY Art_der_Baumassnahme_P_MELVER;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_der_Baumassnahme_P_MELVER VALUES (1,'Neubau')
INSERT INTO Art_der_Baumassnahme_P_MELVER VALUES (2,'Ausbau')
INSERT INTO Art_der_Baumassnahme_P_MELVER VALUES (3,'Erhaltung')

   END_SQL
*)

ENTITY Art_der_Baumassnahme_B_MELVER;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_der_Baumassnahme_B_MELVER VALUES (1,'Straßenbau')
INSERT INTO Art_der_Baumassnahme_B_MELVER VALUES (2,'Kunstbauten')
INSERT INTO Art_der_Baumassnahme_B_MELVER VALUES (3,'Sonstiges')

   END_SQL
*)

ENTITY Angaben_zu_Bew_Biet_Ang_MELVER
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Anz_Bewerber_Bieter_Angeb : SET [15:15] OF Anz_Bewerb_Bieter_Angeb_MELVER;
INVERSE
   von_MELVER_Datensatz          : SET [0:?] OF MELVER
                                       FOR hat_Angaben_zu_Bew_Biet_Angeb;
END_ENTITY;

ENTITY Anz_Bewerb_Bieter_Angeb_MELVER
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Art_Bewerber_Bieter_Angebot   : Art_Bewerb_Bieter_Angeb_MELVER;
   Region                        : Region_MELVER;
   Anzahl                        : Anzahl_zweistellig;
--- Relationen :
INVERSE
   von_Ang_zu_Bewerb_Bieter_Angeb: SET [0:?] OF Angaben_zu_Bew_Biet_Ang_MELVER
                                       FOR hat_Anz_Bewerber_Bieter_Angeb;
END_ENTITY;

ENTITY Art_Bewerb_Bieter_Angeb_MELVER;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_Bewerb_Bieter_Angeb_MELVER VALUES (1,'Bewerber bei Teilnahmewettbewerb')
INSERT INTO Art_Bewerb_Bieter_Angeb_MELVER VALUES (2,'Bewerber, an die Vergabeunterlagen abgegeben wurden')
INSERT INTO Art_Bewerb_Bieter_Angeb_MELVER VALUES (3,'Bieter')
INSERT INTO Art_Bewerb_Bieter_Angeb_MELVER VALUES (4,'eingegangene Hauptangebote')
INSERT INTO Art_Bewerb_Bieter_Angeb_MELVER VALUES (5,'eingegangene Nebenangebote')

   END_SQL
*)

ENTITY Region_MELVER;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Region_MELVER VALUES (1,'Deutschland')
INSERT INTO Region_MELVER VALUES (2,'EG')
INSERT INTO Region_MELVER VALUES (3,'Sonstige')

   END_SQL
*)

ENTITY Angaben_zur_Vergabe_MELVER
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Vergabeart                    : Vergabeart_MELVER;
   Eroeffnung_Angebotsabgabe     : OPTIONAL Datum;
   Auftragserteilung             : Datum;
   Angebotsart                   : OPTIONAL Angebotsart_MELVER;
   Platznummer_Zuschlagsangebot  : OPTIONAL Anzahl_zweistellig;
   Erlaeuterung_zur_Vergabeart   : OPTIONAL Erl_zur_Vergabeart_MELVER;
--- Relationen :
   hat_Angaben_zum_Auftragnehmer : Ang_zum_Auftragnehmer_MELVER;
INVERSE
   von_MELVER_Datensatz          : SET [0:?] OF MELVER
                                       FOR hat_Angaben_zur_Vergabe;
END_ENTITY;

ENTITY Vergabeart_MELVER;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Vergabeart_MELVER VALUES (10,'Ö.A.')
INSERT INTO Vergabeart_MELVER VALUES (11,'B.A.m.T.')
INSERT INTO Vergabeart_MELVER VALUES (12,'B.A.o.T.')
INSERT INTO Vergabeart_MELVER VALUES (13,'F.V.')
INSERT INTO Vergabeart_MELVER VALUES (14,'R.')
INSERT INTO Vergabeart_MELVER VALUES (15,'N.')
INSERT INTO Vergabeart_MELVER VALUES (20,'O.V.')
INSERT INTO Vergabeart_MELVER VALUES (21,'N.V.')
INSERT INTO Vergabeart_MELVER VALUES (22,'Vv.m.B.')
INSERT INTO Vergabeart_MELVER VALUES (23,'Vv.o.B.')

   END_SQL
*)

ENTITY Angebotsart_MELVER;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Angebotsart_MELVER VALUES (1,'Hauptangebot')
INSERT INTO Angebotsart_MELVER VALUES (2,'Nebenangebot')

   END_SQL
*)

ENTITY Erl_zur_Vergabeart_MELVER;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Erl_zur_Vergabeart_MELVER VALUES (31,'4a')
INSERT INTO Erl_zur_Vergabeart_MELVER VALUES (32,'4b')
INSERT INTO Erl_zur_Vergabeart_MELVER VALUES (33,'4c')
INSERT INTO Erl_zur_Vergabeart_MELVER VALUES (34,'5a')
INSERT INTO Erl_zur_Vergabeart_MELVER VALUES (35,'5b')
INSERT INTO Erl_zur_Vergabeart_MELVER VALUES (36,'5c')
INSERT INTO Erl_zur_Vergabeart_MELVER VALUES (37,'5d')
INSERT INTO Erl_zur_Vergabeart_MELVER VALUES (38,'5e')
INSERT INTO Erl_zur_Vergabeart_MELVER VALUES (39,'5f')
INSERT INTO Erl_zur_Vergabeart_MELVER VALUES (40,'5g')

   END_SQL
*)

ENTITY Ang_zum_Auftragnehmer_MELVER
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Name                          : STRING;
   Sitz_PLZ                      : OPTIONAL INTEGER;
   Sitz_in_Land                  : OPTIONAL Land;
   weitere_Namen                 : OPTIONAL SET [1:5] OF STRING;
   Art_des_Auftragnehmers        : Art_des_Auftragnehmers_MELVER;
--- Relationen :
   Sitz_in_Bundesland            : OPTIONAL SET [1:?] OF Verwaltungsbezirk_abstrakt; (* D *)
INVERSE
   zu_Angaben_zur_Vergabe_MELVER : SET [0:?] OF Angaben_zur_Vergabe_MELVER
                                       FOR hat_Angaben_zum_Auftragnehmer;
WHERE
   entweder_Land_oder_Bundesland : ( EXISTS(Sitz_in_Land) XOR
                                     EXISTS(Sitz_in_Bundesland) );
END_ENTITY;

ENTITY Art_des_Auftragnehmers_MELVER;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_des_Auftragnehmers_MELVER VALUES (1,'Einzelunternehmer')
INSERT INTO Art_des_Auftragnehmers_MELVER VALUES (2,'Arbeitsgemeinschaft')

   END_SQL
*)

ENTITY vertragl_Best_und_Massn_MELVER
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Lohngleitklausel              : BOOLEAN;
   Stoffgleitklausel             : BOOLEAN;
   Vertragsstrafe                : BOOLEAN;
   Nachpruefungsverfahren_eingel : OPTIONAL BOOLEAN;
   Nachpruefungsverfahren_entsch : OPTIONAL rechtliche_Instanz_MELVER;
   Zeitdauer_zw_Ruege_u_Entsch   : OPTIONAL Anzahl_zweistellig;
   Aenderung_der_Vergabeentsch   : OPTIONAL BOOLEAN;
--- Relationen :
INVERSE
   von_MELVER_Datensatz          : SET [0:?] OF MELVER
                                       FOR hat_vertragl_Best_und_Massn;
END_ENTITY;

ENTITY rechtliche_Instanz_MELVER;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO rechtliche_Instanz_MELVER VALUES (50,'Vergabeprüfstelle')
INSERT INTO rechtliche_Instanz_MELVER VALUES (51,'Vergabekammer')
INSERT INTO rechtliche_Instanz_MELVER VALUES (52,'Oberlandesgericht')
INSERT INTO rechtliche_Instanz_MELVER VALUES (53,'Bundesgerichtshof')
INSERT INTO rechtliche_Instanz_MELVER VALUES (54,'Rücknahme')

   END_SQL
*)

ENTITY Angaben_z_Auftragssumme_MELVER
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Auftragssumme                 : EURO;
--- Relationen :
   hat_Summen_n_Art_der_Arbeiten : SET [6:6] OF Summe_n_Art_der_Arbeit_MELVER;
   hat_Summen_n_Unternehmensart  : SET [2:2] OF Summe_n_Unternehmensart_MELVER;
   hat_Summen_nach_Regionen      : SET [3:3] OF Summe_nach_Regionen_MELVER;
   hat_Summen_bevorzugt_Bewerber : OPTIONAL Summe_bevorz_Bewerber_MELVER;
INVERSE
   von_MELVER_Datensatz          : SET [0:?] OF MELVER
                                       FOR hat_Angaben_zur_Auftragssumme;
END_ENTITY;

ENTITY Summe_n_Art_der_Arbeit_MELVER
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Art_der_Arbeit                : Art_der_Arbeit_MELVER;
   Anteil_Auftragssumme          : EURO;
--- Relationen :
INVERSE
   zu_Ang_z_Auftragssumme_MELVER : SET [0:?] OF Angaben_z_Auftragssumme_MELVER
                                       FOR hat_Summen_n_Art_der_Arbeiten;
END_ENTITY;

ENTITY Art_der_Arbeit_MELVER;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_der_Arbeit_MELVER VALUES (1,'Abbrucharbeiten')
INSERT INTO Art_der_Arbeit_MELVER VALUES (2,'Erdarbeiten')
INSERT INTO Art_der_Arbeit_MELVER VALUES (3,'Arbeiten für Kunstbauten')
INSERT INTO Art_der_Arbeit_MELVER VALUES (4,'Oberbauarbeiten')
INSERT INTO Art_der_Arbeit_MELVER VALUES (5,'Arbeiten für Straßenausstattungen')
INSERT INTO Art_der_Arbeit_MELVER VALUES (6,'Sonstige Arbeiten')

   END_SQL
*)

ENTITY Summe_n_Unternehmensart_MELVER
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Art_des_Unternehmens          : Art_des_Unternehmens_MELVER;
   Anteil_Auftragssumme          : EURO;
--- Relationen :
INVERSE
   zu_Ang_z_Auftragssumme_MELVER : SET [0:?] OF Angaben_z_Auftragssumme_MELVER
                                       FOR hat_Summen_n_Unternehmensart;
END_ENTITY;

ENTITY Art_des_Unternehmens_MELVER;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_des_Unternehmens_MELVER VALUES (1,'Großwirtschaft')
INSERT INTO Art_des_Unternehmens_MELVER VALUES (2,'Mittelstand')

   END_SQL
*)

ENTITY Summe_nach_Regionen_MELVER
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Region                        : Region_MELVER;
   Anteil_Auftragssumme          : EURO;
--- Relationen :
INVERSE
   zu_Ang_z_Auftragssumme_MELVER : SET [0:?] OF Angaben_z_Auftragssumme_MELVER
                                       FOR hat_Summen_nach_Regionen;
END_ENTITY;

ENTITY Summe_bevorz_Bewerber_MELVER
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Anteil_Auftragssumme          : EURO;
   Grund_der_Bevorzugung         : Grund_der_Bevorzugung_MELVER;
   Auftragskriterium             : Auftragskriterium_MELVER;
   gewaehrter_Mehrpreis          : OPTIONAL EURO;
--- Relationen :
INVERSE
   zu_Ang_z_Auftragssumme_MELVER : SET [0:?] OF Angaben_z_Auftragssumme_MELVER
                                       FOR hat_Summen_bevorzugt_Bewerber;
END_ENTITY;

ENTITY Grund_der_Bevorzugung_MELVER;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Grund_der_Bevorzugung_MELVER VALUES (1,'Anerkannte Werkstätten für Behinderte')
INSERT INTO Grund_der_Bevorzugung_MELVER VALUES (2,'Blindenwerkstätten')

   END_SQL
*)

ENTITY Auftragskriterium_MELVER;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Auftragskriterium_MELVER VALUES (1,'wirtschaftlichstes Angebot')
INSERT INTO Auftragskriterium_MELVER VALUES (2,'Eintrittsrecht mit Mehrpreisgewährung')

   END_SQL
*)

END_SCHEMA; -- MELVER
SCHEMA Kreuzungen;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Anpassung an ASB-ING, Stand 2004

29.06.2004 - 1.000 (1.009)
Schema Kreuzungen erstellt nach ASB-Netzdaten, Stand September 2002

*)

REFERENCE FROM Strassennetz (Punktobjekt_hist);

REFERENCE FROM Administration (ASB_Objekt);

REFERENCE FROM Bauwerke (Teilbauwerk_abstrakt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Schluesseltabelle,Objekt_mit_ID);


ENTITY Kreuzung
ABSTRACT SUPERTYPE OF (ONEOF(Kreuzung_Strasse_Weg, Bahnkreuzung, Gewaesserkreuzung, Tierwechsel, Kreuzung_sonst_Verkehrsanl))
SUBTYPE OF (ASB_Objekt,Punktobjekt_hist);
   (* ARTEN J *)
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Kreuzung_Strasse_Weg
SUBTYPE OF (Kreuzung, Objekt_mit_ID);
--- Attribute :
   beleuchtet                    : OPTIONAL BOOLEAN;  -- kein Eintrag = nicht bekannt
   Kreuzungsart                  : OPTIONAL Kreuzungsart;
   Bezeichnung                   : OPTIONAL STRING(60);
   Kreuzungslage                 : OPTIONAL Kreuzungslage;
   Beruehrungsebene              : OPTIONAL Beruehrungsebene;
   Hoehenlage_aufnehmende_Strasse: OPTIONAL Hoehenlage_aufzun_Strasse;
   Anschluss_Bauform             : OPTIONAL Anschluss_Bauform;
   Vorrangregelung               : OPTIONAL Vorrangregelung;
--- Relationen :
   hat_Teilbauwerk               : OPTIONAL SET [1:?] OF Teilbauwerk_abstrakt;
END_ENTITY;

ENTITY Kreuzungsart;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Kreuzungsart VALUES (1,'Autobahn')
INSERT INTO Kreuzungsart VALUES (2,'Bundesstraße')
INSERT INTO Kreuzungsart VALUES (3,'Landes/Staatsstraße')
INSERT INTO Kreuzungsart VALUES (4,'Kreisstraße')
INSERT INTO Kreuzungsart VALUES (5,'Gemeindestraße')
INSERT INTO Kreuzungsart VALUES (6,'sonstige nicht aufzunehmende Straße')
INSERT INTO Kreuzungsart VALUES (7,'Feldweg bzw. Forstweg')
INSERT INTO Kreuzungsart VALUES (8,'Radweg, Radwegseitenwechsel')
INSERT INTO Kreuzungsart VALUES (9,'Zufahrt Nebenbetrieb')
INSERT INTO Kreuzungsart VALUES (10,'Abfahrt Nebenbetrieb')
INSERT INTO Kreuzungsart VALUES (11,'Grundstückszufahrt')
INSERT INTO Kreuzungsart VALUES (12,'Fußgängerüberweg')
INSERT INTO Kreuzungsart VALUES (13,'Zufahrt Betriebsstätte/,-einrichtung')
INSERT INTO Kreuzungsart VALUES (14,'Abfahrt Betriebsstätte/,-einrichtung')

   END_SQL
*)

ENTITY Kreuzungslage;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Kreuzungslage VALUES ('L','linke Fahrbahn/Fahrbahnhälfte')
INSERT INTO Kreuzungslage VALUES ('R','rechte Fahrbahn/Fahrbahnhälfte')
INSERT INTO Kreuzungslage VALUES ('B','gesamte Fahrbahn')

   END_SQL
*)

ENTITY Beruehrungsebene;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Beruehrungsebene VALUES (1,'plangleich')
INSERT INTO Beruehrungsebene VALUES (2,'planfrei')

   END_SQL
*)

ENTITY Hoehenlage_aufzun_Strasse;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Hoehenlage_aufzun_Strasse VALUES (10,'unten')
INSERT INTO Hoehenlage_aufzun_Strasse VALUES (20,'oben')

   END_SQL
*)

ENTITY Anschluss_Bauform;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Anschluss_Bauform VALUES (0,'ohne anbindung')
INSERT INTO Anschluss_Bauform VALUES (1,'Einmündung oder Kreuzung von 2-streifigen Straßen')
INSERT INTO Anschluss_Bauform VALUES (2,'RAS-K-1-Typ B')
INSERT INTO Anschluss_Bauform VALUES (3,'RAS-K-1-Typ C')
INSERT INTO Anschluss_Bauform VALUES (4,'RAS-K-1-Typ D')
INSERT INTO Anschluss_Bauform VALUES (5,'RAS-K-1-Typ E')
INSERT INTO Anschluss_Bauform VALUES (6,'Kreisverkehr')
INSERT INTO Anschluss_Bauform VALUES (7,'Querungshilfe')
INSERT INTO Anschluss_Bauform VALUES (8,'Fußgängerfurt')
INSERT INTO Anschluss_Bauform VALUES (9,'Zebrastreifen')

   END_SQL
*)

ENTITY Vorrangregelung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Vorrangregelung VALUES (0,'keine Einrichtung')
INSERT INTO Vorrangregelung VALUES (1,'Lichtsignalanlage (LSA)')
INSERT INTO Vorrangregelung VALUES (2,'Blinklicht')
INSERT INTO Vorrangregelung VALUES (3,'Beschilderung')
INSERT INTO Vorrangregelung VALUES (9,'Sonstige')

   END_SQL
*)

ENTITY Bahnkreuzung
SUBTYPE OF (Kreuzung);
--- Attribute :
   Bahnkreuzungsart              : OPTIONAL Bahnkreuzungsart;
   elektrifiziert                : OPTIONAL BOOLEAN;  -- kein Eintrag = nicht bekannt
   Bahnkreuzungsstadium          : OPTIONAL Bahnkreuzungsstadium;
   Beruehrungsebene              : OPTIONAL Beruehrungsebene;
   Bahnkreuzungslage             : OPTIONAL Bahnkreuzungslage;
   Bahnkoerper                   : OPTIONAL Bahnkoerper;
   Bahnkreuzung_Sicherungsart    : OPTIONAL Bahnkreuzung_Sicherungsart;
   Gleisanzahl                   : OPTIONAL INTEGER;
   Bahnkilometer                 : OPTIONAL REAL;
   Streckenbezeichnung           : OPTIONAL STRING(60);
--- Relationen :
END_ENTITY;

ENTITY Bahnkreuzungsart;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Bahnkreuzungsart VALUES (1,'Eisenbahnhauptstrecke')
INSERT INTO Bahnkreuzungsart VALUES (2,'Eisenbahnnebenstrecke')
INSERT INTO Bahnkreuzungsart VALUES (3,'Straßenbahn')
INSERT INTO Bahnkreuzungsart VALUES (4,'Eisenbahnanschlussgleis, Werksbahn')
INSERT INTO Bahnkreuzungsart VALUES (5,'sonstige Schienenbahn')

   END_SQL
*)

ENTITY Bahnkreuzungsstadium;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Bahnkreuzungsstadium VALUES (1,'in Betrieb')
INSERT INTO Bahnkreuzungsstadium VALUES (2,'stillgelegt')

   END_SQL
*)

ENTITY Bahnkreuzungslage;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Bahnkreuzungslage VALUES ('L','Bahn kreuzt linke Fahrbahn/Fahrbahnteil')
INSERT INTO Bahnkreuzungslage VALUES ('R','Bahn kreuzt rechte Fahrbahn/Fahrbahnteil')
INSERT INTO Bahnkreuzungslage VALUES ('B','Bahn kreuzt gesamte Fahrbahn')

   END_SQL
*)

ENTITY Bahnkoerper;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Bahnkoerper VALUES (1,'ohne eigenen Bahnkörper')
INSERT INTO Bahnkoerper VALUES (2,'mit eigenem Bahnkörper auf einer Seite')
INSERT INTO Bahnkoerper VALUES (3,'mit eigenem Bahnkörper auf beiden Seiten')

   END_SQL
*)

ENTITY Bahnkreuzung_Sicherungsart;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Bahnkreuzung_Sicherungsart VALUES (1,'keine Sicherung')
INSERT INTO Bahnkreuzung_Sicherungsart VALUES (2,'Lichtzeichenanlage als BÜSTRA-Anlage')
INSERT INTO Bahnkreuzung_Sicherungsart VALUES (3,'Blinklichtanlage ohne Schranken')
INSERT INTO Bahnkreuzung_Sicherungsart VALUES (4,'Blinklichtanlage mit Halbschranken')
INSERT INTO Bahnkreuzung_Sicherungsart VALUES (5,'Vollschranken mit und ohne Lichtzeichenanlage als BÜSTRA-Anlage')

   END_SQL
*)

ENTITY Gewaesserkreuzung
SUBTYPE OF (Kreuzung);
--- Attribute :
   Gewaesserart                  : OPTIONAL Gewaesserart;
   Gewaessername                 : OPTIONAL STRING(60);
--- Relationen :
END_ENTITY;

ENTITY Gewaesserart;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Gewaesserart VALUES (1,'Strom/Fluss')
INSERT INTO Gewaesserart VALUES (2,'Bach')
INSERT INTO Gewaesserart VALUES (3,'Graben')
INSERT INTO Gewaesserart VALUES (4,'Kanal')
INSERT INTO Gewaesserart VALUES (5,'Binnensee')
INSERT INTO Gewaesserart VALUES (6,'Meer')
INSERT INTO Gewaesserart VALUES (7,'Talsperre')

   END_SQL
*)

ENTITY Tierwechsel
SUBTYPE OF (Kreuzung, Objekt_mit_ID); -- ID bezeichnet bauliche Anlage, zB Bauwerks- oder Durchlass-Nr.
--- Attribute :
--- Relationen :
   Tierart                       : OPTIONAL Tierart;
END_ENTITY;

ENTITY Tierart;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tierart VALUES (1,'Wild')
INSERT INTO Tierart VALUES (2,'Amphibien')
INSERT INTO Tierart VALUES (3,'Viehtrift')
INSERT INTO Tierart VALUES (4,'Kleinsäuger')
INSERT INTO Tierart VALUES (5,'Sonstige')

   END_SQL
*)

ENTITY Kreuzung_sonst_Verkehrsanl
SUBTYPE OF (Kreuzung);
--- Attribute :
--- Relationen :
   Verkehrsanlagenart            : OPTIONAL Verkehrsanlagenart;
END_ENTITY;

ENTITY Verkehrsanlagenart;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Verkehrsanlagenart VALUES (1,'Wasserstraße')
INSERT INTO Verkehrsanlagenart VALUES (2,'Flughafenanlage')
INSERT INTO Verkehrsanlagenart VALUES (3,'öffentlicher Parkplatz')
INSERT INTO Verkehrsanlagenart VALUES (4,'Transportanlage')

   END_SQL
*)


END_SCHEMA;
SCHEMA Arbeitsstelle_an_Strassen;

(*
Historie:

02.08.2006 - 1.011
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Schema Arbeitsstelle_an_Strassen erstellt

*)

REFERENCE FROM Strassennetz (Strasse_abstrakt,Streckenobjekt_stat);

REFERENCE FROM Administration (Polizeidienststelle,Strassenbaudienststelle_abstrakt);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Objekt_mit_ID,Dokument_abstraktOKSTRA_Schluesseltabelle,
                                   Objekt_mit_ID,Dokument_abstrakt,
                                   Zeitraum,Datum,Meter,Tonnen,Kilometer,Dauer);

REFERENCE FROM Grunderwerb (Person);

ENTITY Arbeitsstelle_an_Strassen
SUBTYPE OF (Streckenobjekt_stat,Objekt_mit_ID);
--- Attribute :
   Lagebeschreibung              : OPTIONAL STRING;
   Art_der_Leistung              : OPTIONAL SET[1:?] OF Art_der_Leistung_Arbeitsstelle;
   Zeitraum                      : OPTIONAL Zeitraum;
--- Relationen :
   hat_Status                    : SET[1:?] OF Status_der_Arbeitsstelle;
   hat_verkehrliche_Angaben      : SET[1:?] OF verkehrliche_Angaben_Arbeitsst;
   auf_Strasse                   : SET[1:?] OF Strasse_abstrakt;
   hat_Durchfuehrenden           : OPTIONAL SET[1:?] OF Durchfuehrender_Arbeitsstelle;
   hat_Zusatzinformationen       : OPTIONAL SET[1:?] OF Zusatzinformationen_Arbeitsst;
INVERSE
   zu_Rolle                      : SET[0:?] OF Rolle_Arbeitsstelle FOR hat_Arbeitsstelle;
   hat_hist_Meldungszustand      : SET[0:?] OF hist_Meldungszustand_Arbeitsst
                                       FOR zu_Arbeitsstelle_an_Strassen;
   hat_Abbruch_Einstellung       : SET[0:?] OF Abbruch_Einstellung_Arbeitsst
                                       FOR zu_Arbeitsstelle_an_Strassen;
   hat_zust_Polizeidienststelle  : SET[0:?] OF zust_Polizeidienstst_Arbeitsst
                                       FOR zu_Arbeitsstelle_an_Strassen;
END_ENTITY;

ENTITY Art_der_Leistung_Arbeitsstelle;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_der_Leistung_Arbeitsstelle VALUES (1,'Unterhaltungsarbeiten')
INSERT INTO Art_der_Leistung_Arbeitsstelle VALUES (2,'Bauwerksarbeiten')
INSERT INTO Art_der_Leistung_Arbeitsstelle VALUES (3,'Fahrbahnreparatur')
INSERT INTO Art_der_Leistung_Arbeitsstelle VALUES (4,'Baustelleneinrichtung')
INSERT INTO Art_der_Leistung_Arbeitsstelle VALUES (5,'Ausbau')
INSERT INTO Art_der_Leistung_Arbeitsstelle VALUES (6,'wegen akuter Verkehrsgefährdung')
INSERT INTO Art_der_Leistung_Arbeitsstelle VALUES (99,'Sonstiges')

   END_SQL
*)

ENTITY Status_der_Arbeitsstelle
SUBTYPE OF (historisches_Objekt);
--- Attribute :
   Status                        : Tab_Status_der_Arbeitsstelle;
--- Relationen :
   erfasst_von_Person            : OPTIONAL Person;
INVERSE
   zu_Arbeitsstelle_an_Strassen  : Arbeitsstelle_an_Strassen FOR hat_Status;
END_ENTITY;

ENTITY Tab_Status_der_Arbeitsstelle;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tab_Status_der_Arbeitsstelle VALUES (1,'geplant')
INSERT INTO Tab_Status_der_Arbeitsstelle VALUES (2,'angeordnet')
INSERT INTO Tab_Status_der_Arbeitsstelle VALUES (3,'durchgeführt')

   END_SQL
*)

ENTITY verkehrliche_Angaben_Arbeitsst
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
   Status                        : Status_der_verkehrl_Angabe;
   Art_der_Arbeitsstelle         : Art_der_Arbeitsstelle;
   zugrundeliegender_Regelplan   : RSA_Regelplan;
   verursacht_Behinderung        : OPTIONAL Art_Behinderung_Arbeitsstelle;
   Verkehrsfuehrung              : OPTIONAL Verkehrsfuehrung_Arbeitsstelle;
   verengte_Fahrstreifen         : OPTIONAL SET[1:?] OF INTEGER;
   gesperrte_Fahrstreifen        : OPTIONAL SET[1:?] OF INTEGER;
   Ueberleitung                  : OPTIONAL BOOLEAN;
   Verkehrsteilung               : OPTIONAL BOOLEAN;
   Vollsperrung                  : OPTIONAL BOOLEAN;
   Standstreifenmitnutzung       : OPTIONAL BOOLEAN;
   Standstreifensperrung         : OPTIONAL BOOLEAN;
   halbseitige_Sperrung          : OPTIONAL BOOLEAN;
   max_Gewicht                   : OPTIONAL Tonnen;
   max_Hoehe                     : OPTIONAL Meter;
   max_Breite                    : OPTIONAL Meter;
   Beschreibung_Sondertransporte : OPTIONAL STRING;
   Verkehrsfuehrung_Sondertransp : OPTIONAL STRING;
   Zeitraum                      : OPTIONAL Zeitraum;
--- Relationen :
   hat_Verkehrszeichenplan       : SET[1:?] OF Dokument_abstrakt;
   hat_Behinderungsprognose      : OPTIONAL SET[1:?] OF Behinderung_Prognose;
   hat_Umleitung                 : OPTIONAL SET[1:?] OF Umleitung_Arbeitsstelle;
   hat_verkehrsrechtl_Anordnung  : OPTIONAL SET[1:?] OF Dokument_abstrakt;
INVERSE
   zu_Arbeitsstelle              : SET[0:?] OF Arbeitsstelle_an_Strassen
                                       FOR hat_verkehrliche_Angaben;
END_ENTITY;

ENTITY Status_der_verkehrl_Angabe;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Status_der_verkehrl_Angabe VALUES (1,'geplant')
INSERT INTO Status_der_verkehrl_Angabe VALUES (2,'angeordnet')
INSERT INTO Status_der_verkehrl_Angabe VALUES (3,'durchgeführt')

   END_SQL
*)

ENTITY Art_der_Arbeitsstelle;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_der_Arbeitsstelle VALUES (1,'Arbeitsstelle längerer Dauer')
INSERT INTO Art_der_Arbeitsstelle VALUES (2,'Arbeitsstelle kürzerer Dauer')
INSERT INTO Art_der_Arbeitsstelle VALUES (3,'Nachtbaustelle')

   END_SQL
*)

ENTITY Art_Behinderung_Arbeitsstelle;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_Behinderung_Arbeitsstelle VALUES (1,'Einschränkung der Fahrbahn')
INSERT INTO Art_Behinderung_Arbeitsstelle VALUES (2,'Einschränkung auf einen Fahrstreifen')
INSERT INTO Art_Behinderung_Arbeitsstelle VALUES (3,'Einschränkung auf zwei Fahrstreifen')
INSERT INTO Art_Behinderung_Arbeitsstelle VALUES (4,'Sperrung des linken Fahrstreifens')
INSERT INTO Art_Behinderung_Arbeitsstelle VALUES (5,'Sperrung der zwei linken Fahrstreifen')
INSERT INTO Art_Behinderung_Arbeitsstelle VALUES (6,'Sperrung einer Richtungsfahrbahn')

   END_SQL
*)

ENTITY Verkehrsfuehrung_Arbeitsstelle;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(5) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(5);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('2n+2','1 Fahrstreifen und 1 Behelfsfahrstreifen bzw. 2 Behelfsfahrstreifen; analog bei Einschränkung links')
INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('2n+1','1 Fahrstreifen oder 1 Behelfsfahrstreifen; analog bei Einschränkung links')
INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('2n+2s','2 Behelfsfahrstreifen auf rechtem Fahrstreifen und Standstreifen')
INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('3n+3','3 Behelfsfahrstreifen; analog bei Einschränkung links')
INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('3n+2','2 Fahrstreifen oder 2 Behelfsfahrstreifen')
INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('3n+1','1 Fahrstreifen oder 1 Behelfsfahrstreifen')
INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('3n+2s','2 Behelfsfahrstreifen auf rechtem Fahrstreifen und Standstreifen')
INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('3s+1','3 Behelfsfahrstreifen auf der Gegenfahrbahn, 1 Fahrstreifen oder Behelfsfahrstreifen auf eingeschränkter Fahrbahn')
INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('4s+0','4 Behelfsfahrstreifen auf der Gegenfahrbahn')
INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('2+0','2 Fahrstreifen auf der Gegenfahrbahn')
INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('3s+0','3 Behelfsfahrstreifen auf der Gegenfahrbahn')
INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('4+2','4 Behelfsfahrstreifen auf der Gegenfahrbahn, 2 Fahrstreifen oder 2 Behelfsfahrstreifen auf eingeschränkter Fahrbahn')
INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('5s+1','5 Behelfsfahrstreifen auf der Gegenfahrbahn, 1 Fahrstreifen oder 1 Behelfsfahrstreifen auf eingeschränkter Fahrbahn')
INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('4+0','4 Behelfsfahrstreifen auf der Gegenfahrbahn')
INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('5s+0','5 Fahrstreifen auf der Gegenfahrbahn')
INSERT INTO Verkehrsfuehrung_Arbeitsstelle VALUES ('6+0','6 Fahrstreifen auf der Gegenfahrbahn')

   END_SQL
*)

ENTITY Behinderung_Prognose
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Datum                         : Datum;
   Status                        : Behinderung_Status;
--- Relationen :
INVERSE
   zu_verkehrlichen_Angaben      : SET[0:?] OF verkehrliche_Angaben_Arbeitsst
                                       FOR hat_Behinderungsprognose;
END_ENTITY;

ENTITY Behinderung_Status;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Behinderung_Status VALUES (1,'grün')
INSERT INTO Behinderung_Status VALUES (2,'gelb')
INSERT INTO Behinderung_Status VALUES (3,'rot')

   END_SQL
*)

ENTITY Umleitung_Arbeitsstelle
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Mehrkilometer                 : OPTIONAL Kilometer;
   Mehrzeit                      : OPTIONAL Dauer;
   Beschreibung                  : OPTIONAL STRING;
   Bedarfsumleitung_Nummer       : OPTIONAL INTEGER;
--- Relationen :
   hat_Umleitung_Strecke         : OPTIONAL Umleitung_Strecke;
INVERSE
   zu_Arbeitsstelle              : SET[0:?] OF verkehrliche_Angaben_Arbeitsst
                                       FOR hat_Umleitung;
END_ENTITY;

ENTITY Umleitung_Strecke
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
--- Relationen :
INVERSE
   zu_Umleitung                  : SET[0:?] OF Umleitung_Arbeitsstelle
                                       FOR hat_Umleitung_Strecke;
END_ENTITY;

ENTITY RSA_Regelplan;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(7) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(7);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO RSA_Regelplan VALUES ('CI/1','Ohne Einengung der Fahrbahn')
INSERT INTO RSA_Regelplan VALUES ('CI/2','Mit geringer Einengung der Fahrbahn')
INSERT INTO RSA_Regelplan VALUES ('CI/3','Verkehrsführung über Behelfsfahrstreifen')
INSERT INTO RSA_Regelplan VALUES ('CI/4','Fahrbahn halbseitig gesperrt. Verkehrsregelung durch Verkehrszeichen')
INSERT INTO RSA_Regelplan VALUES ('CI/5','Fahrbahn halbseitig gesperrt. Verkehrsregelung durch Lichtzeichenanlage')
INSERT INTO RSA_Regelplan VALUES ('CI/6','Arbeitsstelle am Übergang vom Außer- in den Innerortsbereich. Fahrbahn halbseitig gesperrt. Verkehrsregelung durch Verkehrszeichen')
INSERT INTO RSA_Regelplan VALUES ('CI/7','3-streifige Fahrbahn. Sperrung des rechten Fahrstreifens der 2-streifigen Richtung')
INSERT INTO RSA_Regelplan VALUES ('CI/8','3-streifige Fahrbahn. Sperrung der 1-streifigen Richtung')
INSERT INTO RSA_Regelplan VALUES ('CI/9','Arbeitsstellenumfahrung mit Behelfsfahrbahn')
INSERT INTO RSA_Regelplan VALUES ('CII/1','Arbeitsstelle von kürzerer Dauer mit Beschilderung auf Straßen mit geringer Verkehrsstärke (nur bei Tageslicht)')
INSERT INTO RSA_Regelplan VALUES ('CII/2','Arbeitsstelle von kürzerer Dauer mit fahrbarer Absperrtafel (nur bei Tageslicht)')
INSERT INTO RSA_Regelplan VALUES ('CII/3','Bewegliche Arbeitsstelle (nur bei Tageslicht)')
INSERT INTO RSA_Regelplan VALUES ('CII/4','Arbeitsstelle für Markierungsarbeiten in Fahrbahnmitte (nur bei Tageslicht)')
INSERT INTO RSA_Regelplan VALUES ('CII/5','Vermessungsarbeiten außerorts mit starker Einschränkung einer Fahrbahn im Gegenverkehr. Sicherung mit Leitkegeln')
INSERT INTO RSA_Regelplan VALUES ('DI/1','Verkehrsführung 2n+2. 1 Fahrstreifen und 1 Behelfsfahrstreifen auf eingeschränkter zweistreifiger Fahrbahn. Bei Arbeiten am Mittelstreifen analog. Bei dreistreifiger Fahrbahn analog.')
INSERT INTO RSA_Regelplan VALUES ('DI/2','Verkehrsführung 2n+2. 2 Behelfsfahrstreifen auf eingeschränkter zweistreifiger Fahrbahn. Bei Arbeiten am Mittelstreifen analog.')
INSERT INTO RSA_Regelplan VALUES ('DI/3','Verkehrsführung 2n+1. 1 (Behelfs-)Fahrstreifen auf eingeschränkter zweistreifiger Fahrbahn. Bei Arbeiten am Mittelstreifen analog, wenn kein Standstreifen vorhanden ist.')
INSERT INTO RSA_Regelplan VALUES ('DI/4','Verkehrsführung 2n+2s. 2 Behelfsfahrstreifen bei Arbeiten am Mittelstreifen und vorhandenem Standstreifen')
INSERT INTO RSA_Regelplan VALUES ('DI/5','Verkehrsführung 3n+3. 3 Behelfsfahrstreifen auf eingeschränkter dreistreifiger Fahrbahn. Bei Arbeiten am Mittelstreifen analog')
INSERT INTO RSA_Regelplan VALUES ('DI/6','Verkehrsführung 3n+2. 2 (Behelfs-)Fahrstreifen auf eingeschränkter dreistreifiger Fahrbahn. Bei Arbeiten am Mittelstreifen analog')
INSERT INTO RSA_Regelplan VALUES ('DI/7','Verkehrsführung 3n+2s. 2 Behelfsfahrstreifen auf eingeschränkter dreistreifiger Fahrbahn bei Arbeiten am Mittelstreifen und vorhandenem Standstreifen')
INSERT INTO RSA_Regelplan VALUES ('DI/8','Verkehrsführung an Anschlussstellen. Verkehrsführung 2n+2s Regelfall')
INSERT INTO RSA_Regelplan VALUES ('DI/9','Verkehrsführung an Anschlussstellen. Verkehrsführung 2n+2s Ausnahmefall')
INSERT INTO RSA_Regelplan VALUES ('DI/10','Verkehrsführung an Anschlussstellen. Verkehrsführung 2n+1 Regelfall')
INSERT INTO RSA_Regelplan VALUES ('DII/1a','Verkehrsführung 3s+1. 3 Behelfsfahrstreifen auf der Gegenfahrbahn, 1 (Behelfs-)Fahrstreifen auf eingeschränkter Fahrbahn')
INSERT INTO RSA_Regelplan VALUES ('DII/1b','Verkehrsführung 3s+1. 3 Behelfsfahrstreifen auf der Gegenfahrbahn, 1 (Behelfs-)Fahrstreifen auf eingeschränkter Fahrbahn')
INSERT INTO RSA_Regelplan VALUES ('DII/2a','Verkehrsführung 4s+0. 4 Behelfsfahrstreifen auf der Gegenfahrbahn')
INSERT INTO RSA_Regelplan VALUES ('DII/2b','Verkehrsführung 4s+0. 4 Behelfsfahrstreifen auf der Gegenfahrbahn')
INSERT INTO RSA_Regelplan VALUES ('DII/3a','Verkehrsführung 2+0. 2 Fahrstreifen auf der Gegenfahrbahn')
INSERT INTO RSA_Regelplan VALUES ('DII/3b','Verkehrsführung 2+0. 2 Fahrstreifen auf der Gegenfahrbahn')
INSERT INTO RSA_Regelplan VALUES ('DII/4a','Verkehrsführung 3s+0. 3 Behelfsfahrstreifen auf der Gegenfahrbahn')
INSERT INTO RSA_Regelplan VALUES ('DII/4b','Verkehrsführung 3s+0. 3 Behelfsfahrstreifen auf der Gegenfahrbahn')
INSERT INTO RSA_Regelplan VALUES ('DII/5a','Verkehrsführung 4+2. 4 Behelfsfahrstreifen auf der Gegenfahrbahn, 2 (Behelfs-)Fahrstreifen auf eingeschränkter Fahrbahn')
INSERT INTO RSA_Regelplan VALUES ('DII/5b','Verkehrsführung 4+2. 4 Behelfsfahrstreifen auf der Gegenfahrbahn, 2 (Behelfs-)Fahrstreifen auf eingeschränkter Fahrbahn')
INSERT INTO RSA_Regelplan VALUES ('DII/6a','Verkehrsführung 5s+1. 5 Behelfsfahrstreifen auf der Gegenfahrbahn, 1 (Behelfs-)Fahrstreifen auf eingeschränkter Fahrbahn')
INSERT INTO RSA_Regelplan VALUES ('DII/6b','Verkehrsführung 5s+1. 5 Behelfsfahrstreifen auf der Gegenfahrbahn, 1 (Behelfs-)Fahrstreifen auf eingeschränkter Fahrbahn')
INSERT INTO RSA_Regelplan VALUES ('DII/7a','Verkehrsführung 4+0. 4 Behelfsfahrstreifen auf der Gegenfahrbahn (ohne Standstreifen)')
INSERT INTO RSA_Regelplan VALUES ('DII/7b','Verkehrsführung 4+0. 4 Behelfsfahrstreifen auf der Gegenfahrbahn (ohne Standstreifen)')
INSERT INTO RSA_Regelplan VALUES ('DII/8a','Verkehrsführung 5s+0. 5 Behelfsfahrstreifen auf der Gegenfahrbahn')
INSERT INTO RSA_Regelplan VALUES ('DII/8b','Verkehrsführung 5s+0. 5 Behelfsfahrstreifen auf der Gegenfahrbahn')
INSERT INTO RSA_Regelplan VALUES ('DII/9','Verkehrsführung an Anschlussstellen. Verkehrsführung 4s+0')
INSERT INTO RSA_Regelplan VALUES ('DII/10','Verkehrsführung an Anschlussstellen. Verkehrsführung 2+0')
INSERT INTO RSA_Regelplan VALUES ('DIII/1','Arbeitsstelle von kürzerer Dauer auf einem Fahrstreifen einer Richtungsfahrbahn. Sichtweite > 800 m und ständige Geschwindigkeitsbegrenzung <= 120km/h')
INSERT INTO RSA_Regelplan VALUES ('DIII/2a','Arbeitsstelle von kürzerer Dauer auf dem äußeren Fahrstreifen einer Richtungsfahrbahn. Sichtweite < 800 m - 400 m. Sicherung nur mit Vorwarntafel')
INSERT INTO RSA_Regelplan VALUES ('DIII/2b','Arbeitsstelle von kürzerer Dauer auf dem äußeren Fahrstreifen einer Richtungsfahrbahn. Sichtweite < 800 m. Sicherung nur mit verschiedenen Vorwarneinrichtungen')
INSERT INTO RSA_Regelplan VALUES ('DIII/3a','Arbeitsstelle von kürzerer Dauer auf dem inneren Fahrstreifen einer Richtungsfahrbahn. Sichtweite 400 - 800 m. Sicherung mit verschiedenen Vorwarneinrichtungen')
INSERT INTO RSA_Regelplan VALUES ('DIII/3b','Arbeitsstelle von kürzerer Dauer auf dem inneren Fahrstreifen einer Richtungsfahrbahn. Sichtweite < 400 m. Sicherung mit verschiedenen Vorwarneinrichtungen')
INSERT INTO RSA_Regelplan VALUES ('DIII/4','Arbeitsstelle von kürzerer Dauer auf dem inneren Fahrstreifen einer Richtungsfahrbahn. Zweistreifige Verkehrsführung unter Einbeziehung des Standstreifens')
INSERT INTO RSA_Regelplan VALUES ('DIII/5','Arbeitsstelle von kürzerer Dauer bei Sperrung des mittleren und rechten Fahrstreifens einer Richtungsfahrbahn. Sichtweite < 800 m')
INSERT INTO RSA_Regelplan VALUES ('DIII/6','Arbeitsstelle von kürzerer Dauer bei Sperrung des mittleren und linken Fahrstreifens einer Richtungsfahrbahn. Sichtweite < 800 m')
INSERT INTO RSA_Regelplan VALUES ('DIII/7','Arbeitsstelle von kürzerer Dauer auf dem befestigten Seitenstreifen einer Richtungsfahrbahn')

   END_SQL
*)

ENTITY Rolle_Arbeitsstelle
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Rollenbeschreibung            : Rollenbeschreibung_Arbeitsst;
--- Relationen :
   hat_Arbeitsstelle             : Arbeitsstelle_an_Strassen;
   hat_Person                    : Person;
INVERSE
   zu_hist_Meldungszustand       : SET[0:?] OF hist_Meldungszustand_Arbeitsst FOR hat_Rolle;
   zu_Abbruch_Einstellung        : SET[0:?] OF Abbruch_Einstellung_Arbeitsst FOR hat_Rolle;
   zu_Polizeidienststelle        : SET[0:?] OF zust_Polizeidienstst_Arbeitsst FOR hat_Ansprechpartner;
   zu_Firma                      : SET[0:?] OF Firma_Arbeitsstelle FOR hat_Ansprechpartner;
END_ENTITY;

ENTITY Rollenbeschreibung_Arbeitsst
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Bezeichnung                   : STRING;
   Beschreibung                  : OPTIONAL STRING;
--- Relationen :
INVERSE
   zu_Rolle_Arbeitsstelle        : SET[0:?] OF Rolle_Arbeitsstelle FOR Rollenbeschreibung;
END_ENTITY;

ENTITY Durchfuehrender_Arbeitsstelle
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Firma                     : OPTIONAL Firma_Arbeitsstelle;
   hat_Strassenbaudienststelle   : OPTIONAL SET[1:?] OF Strassenbaudienststelle_abstrakt;
INVERSE
   zu_Arbeitsstelle              : Arbeitsstelle_an_Strassen FOR hat_Durchfuehrenden;
END_ENTITY;

ENTITY Firma_Arbeitsstelle
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   hat_Ansprechpartner           : OPTIONAL SET[1:?] OF Rolle_Arbeitsstelle;
INVERSE
   zu_Durchfuehrendem            : SET[0:?] OF Durchfuehrender_Arbeitsstelle FOR hat_Firma;
END_ENTITY;

ENTITY Zusatzinformationen_Arbeitsst
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Ausweichstrecke_frei          : OPTIONAL BOOLEAN;
   OePNV_betroffen               : OPTIONAL BOOLEAN;
   Arb_nur_i_verkehrsarmen_Zeiten: OPTIONAL BOOLEAN;
   Unterbrechung_moeglich        : OPTIONAL BOOLEAN;
   Ausschlusszeiten_beruecksicht : OPTIONAL BOOLEAN;
   Grossveranstaltungen_eingepl  : OPTIONAL BOOLEAN;
   Erfassung_Gegenrichtung       : OPTIONAL BOOLEAN;
--- Relationen :
INVERSE
   zu_Arbeitsstelle              : Arbeitsstelle_an_Strassen FOR hat_Zusatzinformationen;
END_ENTITY;

ENTITY hist_Meldungszustand_Arbeitsst
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Datum                         : Datum;
   Meldungszustand               : STRING;
--- Relationen :
   zu_Arbeitsstelle_an_Strassen  : Arbeitsstelle_an_Strassen;
   hat_Rolle                     : Rolle_Arbeitsstelle;
END_ENTITY;

ENTITY Abbruch_Einstellung_Arbeitsst
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Datum                         : Datum;
   Grund                         : Tab_Abbruch_Einst_Arbeitsst;
   Erlaeuterung                  : OPTIONAL STRING;
--- Relationen :
   zu_Arbeitsstelle_an_Strassen  : Arbeitsstelle_an_Strassen;
   hat_Rolle                     : OPTIONAL Rolle_Arbeitsstelle;
END_ENTITY;

ENTITY Tab_Abbruch_Einst_Arbeitsst;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Tab_Abbruch_Einst_Arbeitsst VALUES (1,'Witterung')
INSERT INTO Tab_Abbruch_Einst_Arbeitsst VALUES (2,'Polizei')
INSERT INTO Tab_Abbruch_Einst_Arbeitsst VALUES (3,'Unfall')
INSERT INTO Tab_Abbruch_Einst_Arbeitsst VALUES (4,'Ausfall Personal')
INSERT INTO Tab_Abbruch_Einst_Arbeitsst VALUES (5,'vorzeitig fertig')
INSERT INTO Tab_Abbruch_Einst_Arbeitsst VALUES (99,'Sonstiges')

   END_SQL
*)

ENTITY zust_Polizeidienstst_Arbeitsst
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
--- Relationen :
   zu_Arbeitsstelle_an_Strassen  : Arbeitsstelle_an_Strassen;
   hat_Ansprechpartner           : OPTIONAL Rolle_Arbeitsstelle;
   hat_Dienststelle              : Polizeidienststelle;
END_ENTITY;

END_SCHEMA; -- Arbeitsstelle_an_Strassen
SCHEMA Topografie;

(*
Historie:

02.08.2006 - 1.011
Ergänzung von RAS-Verm-Objekten gemäß N0071
Einführung OKSTRA-ID gemäß N0073

09.09.2005 - 1.010 (1.010)
Schema Topografie erstellt
*)

REFERENCE FROM Geometrieschema (Punktobjekt_Modell,Linienobjekt_Modell,
                                Flaechenobjekt_Modell);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,ErfassungsqualitaetOKSTRA_Schluesseltabelle,
                                   Erfassungsqualitaet,Zentimeter,Meter);

REFERENCE FROM Grunderwerb (Nutzungsartflaeche_Basis);

ENTITY Status_Eigenschaft
ABSTRACT SUPERTYPE OF (ONEOF(Boeschung,Nutzungsartflaeche_Basis,Gebaeude,
                       Zaun,Mauer,Gehoelz))
SUBTYPE OF (OKSTRA_Objekt);
   (* VERERBEN DOWN *)
--- Attribute :
   Bestandsstatus                : Bestandsstatus;
--- Relationen :
END_ENTITY;

ENTITY Bestandsstatus;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Bestandsstatus VALUES (1,'Bestand_erfasst')
INSERT INTO Bestandsstatus VALUES (2,'Bestand_amtlich')
INSERT INTO Bestandsstatus VALUES (3,'geplant/neu')
INSERT INTO Bestandsstatus VALUES (4,'geplant/Abriss')
INSERT INTO Bestandsstatus VALUES (5,'zerstört')
INSERT INTO Bestandsstatus VALUES (6,'unbekannt')

   END_SQL
*)

ENTITY Boeschung
SUBTYPE OF (Flaechenobjekt_Modell,Status_Eigenschaft);
--- Attribute :
   Art_Boeschung                 : Art_Boeschung;
   Hoehe                         : OPTIONAL Meter;
   Beginn_Interpolation          : Beginn_Interpolation;
--- Relationen :
   hat_Oberkante                 : LIST [1:?] OF Boeschungskantenabschnitt;
   hat_Unterkante                : LIST [1:?] OF Boeschungskantenabschnitt;
   hat_Boeschungslinie           : OPTIONAL SET [1:?] OF Boeschungslinie;
END_ENTITY;

ENTITY Art_Boeschung;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_Boeschung VALUES (1,'normale Böschung')
INSERT INTO Art_Boeschung VALUES (2,'historische Böschung')
INSERT INTO Art_Boeschung VALUES (3,'Berme')

   END_SQL
*)

ENTITY Beginn_Interpolation;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Beginn_Interpolation VALUES (1,'Anfang')
INSERT INTO Beginn_Interpolation VALUES (2,'Ende')
INSERT INTO Beginn_Interpolation VALUES (3,'nicht festgelegt')

   END_SQL
*)

ENTITY Boeschungskantenabschnitt
SUBTYPE OF (Linienobjekt_Modell);
--- Attribute :
   sicher                        : OPTIONAL BOOLEAN;
--- Relationen :
INVERSE
   ist_Oberkante_zu              : SET [0:?] OF Boeschung
                                             FOR hat_Oberkante;
   ist_Unterkante_zu             : SET [0:?] OF Boeschung
                                             FOR hat_Unterkante;
WHERE
   ist_Oberkante_oder_Unterkante : (EXISTS(ist_Oberkante_zu)
                                    OR EXISTS(ist_Unterkante_zu));
END_ENTITY;

ENTITY Boeschungslinie
SUBTYPE OF (Linienobjekt_Modell);
--- Attribute :
   Art_Boeschungslinie           : Art_Boeschungslinie;
--- Relationen :
INVERSE
   gehoert_zu_Boeschung          : Boeschung FOR hat_Boeschungslinie;
END_ENTITY;

ENTITY Art_Boeschungslinie;
   (* KEY_NAME Kennung *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_Boeschungslinie VALUES (1,'Gefällewechsel')
INSERT INTO Art_Boeschungslinie VALUES (2,'Kehle')

   END_SQL
*)

ENTITY Gebaeude
SUBTYPE OF (Linienobjekt_Modell,Flaechenobjekt_Modell,
            Status_Eigenschaft);
--- Attribute :
   Gebaeudenutzung               : Gebaeudenutzung;
   Gebaeudefunktion              : OPTIONAL Gebaeudefunktion;
   Name                          : OPTIONAL STRING;
   Traufhoehe                    : OPTIONAL Meter;
   Firsthoehe                    : OPTIONAL Meter;
   hat_Erfassungsqualitaet       : OPTIONAL Erfassungsqualitaet;
--- Relationen :
   hat_Anschrift                 : SET [0:?] OF Anschrift;
   hat_Geschoss                  : LIST [0:?] OF Geschoss;
END_ENTITY;

ENTITY Gebaeudenutzung;
   (* KEY_NAME Kennung *)
   (* KEY_TYP INTEGER *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

ENTITY Gebaeudefunktion;
   (* KEY_NAME Kennung *)
   (* KEY_TYP INTEGER *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

ENTITY Anschrift
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Hausnummer                    : OPTIONAL STRING;
   Strassenname                  : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Gebaeude                  : SET [0:?] OF Gebaeude
                                             FOR hat_Anschrift;
END_ENTITY;

ENTITY Geschoss
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Hoehe                         : OPTIONAL Meter;
   Oberkante_Fenster             : OPTIONAL Meter;
   Bezeichnung                   : OPTIONAL STRING;
--- Relationen :
INVERSE
   von_Gebaeude                  : Gebaeude FOR hat_Geschoss;
END_ENTITY;

ENTITY Zaun
SUBTYPE OF (Linienobjekt_Modell,Status_Eigenschaft);
--- Attribute :
   Hoehe                         : OPTIONAL Meter;
   wahre_Laenge                  : OPTIONAL Meter;
   Fundament_vorhanden           : OPTIONAL BOOLEAN;
   Seite_Zaunpfaehle             : OPTIONAL Seite_Zaunpfaehle;
   Zaunart                       : OPTIONAL Zaunart;
   Material_Zaunpfaehle          : OPTIONAL Material_Zaunpfaehle;
   Zaunfunktion                  : OPTIONAL Zaunfunktion;
--- Relationen :
   hat_Oeffnung                  : LIST [0:?] OF Oeffnung;
INVERSE
   auf_Mauerabschnitt            : SET [0:?] OF Mauerabschnitt
                                             FOR hat_Zaun;
END_ENTITY;

ENTITY Seite_Zaunpfaehle;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Seite_Zaunpfaehle VALUES ('L','links')
INSERT INTO Seite_Zaunpfaehle VALUES ('R','rechts')

   END_SQL
*)

ENTITY Zaunart;
   (* KEY_NAME Kennung *)
   (* KEY_TYP INTEGER *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Zaunart VALUES (1,'Holzzaun')
INSERT INTO Zaunart VALUES (2,'Drahtzaun')
INSERT INTO Zaunart VALUES (3,'Metallzaun')

   END_SQL
*)

ENTITY Material_Zaunpfaehle;
   (* KEY_NAME Kennung *)
   (* KEY_TYP INTEGER *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Material_Zaunpfaehle VALUES (1,'Zement')
INSERT INTO Material_Zaunpfaehle VALUES (2,'Metall')
INSERT INTO Material_Zaunpfaehle VALUES (3,'Holz')

   END_SQL
*)

ENTITY Zaunfunktion;
   (* KEY_NAME Kennung *)
   (* KEY_TYP INTEGER *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Zaunfunktion VALUES (1,'Wildschutzzaun')
INSERT INTO Zaunfunktion VALUES (2,'Kleintierschutzzaun')
INSERT INTO Zaunfunktion VALUES (3,'Amphibienschutzzaun')
INSERT INTO Zaunfunktion VALUES (4,'Bauschutzzaun')
INSERT INTO Zaunfunktion VALUES (5,'Weidezaun')
INSERT INTO Zaunfunktion VALUES (6,'Grenzzaun')

   END_SQL
*)

ENTITY Oeffnung
SUBTYPE OF (Punktobjekt_Modell);
--- Attribute :
   Art_Oeffnung                  : Art_Oeffnung;
--- Relationen :
INVERSE
   von_Zaun                      : SET [0:1] OF Zaun FOR hat_Oeffnung;
   von_Mauerabschnitt            : SET [0:1] OF Mauerabschnitt FOR hat_Oeffnung;
   von_Heckenabschnitt           : SET [0:1] OF Heckenabschnitt FOR hat_Oeffnung;
END_ENTITY;

ENTITY Art_Oeffnung;
   (* KEY_NAME Kennung *)
   (* KEY_TYP INTEGER *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Art_Oeffnung VALUES (1,'Viehdurchlass')
INSERT INTO Art_Oeffnung VALUES (2,'Tür')
INSERT INTO Art_Oeffnung VALUES (3,'Tor')
INSERT INTO Art_Oeffnung VALUES (4,'Fluchttür')
INSERT INTO Art_Oeffnung VALUES (5,'offener Durchlass')

   END_SQL
*)

ENTITY Mauer
SUBTYPE OF (Status_Eigenschaft);
--- Attribute :
   Mauerfunktion                 : OPTIONAL Mauerfunktion;
--- Relationen :
   hat_Mauerabschnitt            : LIST [1:?] OF Mauerabschnitt;
END_ENTITY;

ENTITY Mauerfunktion;
   (* KEY_NAME Kennung *)
   (* KEY_TYP INTEGER *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Mauerfunktion VALUES (1,'Grenzmauer')
INSERT INTO Mauerfunktion VALUES (2,'Stützmauer')
INSERT INTO Mauerfunktion VALUES (3,'Grenz- und Stützmauer')

   END_SQL
*)

ENTITY Mauerabschnitt
SUBTYPE OF (Linienobjekt_Modell);
--- Attribute :
   Breite                        : Zentimeter;
   Hoehe                         : Meter;
   wahre_Laenge                  : OPTIONAL Meter;
   ist_Pfeiler                   : OPTIONAL BOOLEAN;
   Material_Mauerabschnitt       : OPTIONAL Material_Mauerabschnitt;
   Lage_Bezugsgeometrie          : OPTIONAL Lage_Bezugsgeometrie;
--- Relationen :
   hat_Zaun                      : OPTIONAL Zaun;
   hat_Oeffnung                  : LIST [0:?] OF Oeffnung;
INVERSE
   gehoert_zu_Mauer              : Mauer FOR hat_Mauerabschnitt;
END_ENTITY;

ENTITY Lage_Bezugsgeometrie;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(1) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : STRING(1);
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Lage_Bezugsgeometrie VALUES ('L','linke Seite')
INSERT INTO Lage_Bezugsgeometrie VALUES ('R','rechte Seite')
INSERT INTO Lage_Bezugsgeometrie VALUES ('M','Mitte')

   END_SQL
*)

ENTITY Material_Mauerabschnitt;
   (* KEY_NAME Kennung *)
   (* KEY_TYP INTEGER *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

ENTITY Gehoelz
ABSTRACT SUPERTYPE OF (ONEOF(Gebuesch,Hecke))
SUBTYPE OF (Status_Eigenschaft);
--- Attribute :
   Gehoelzart                    : OPTIONAL Gehoelzart;
--- Relationen :
END_ENTITY;

ENTITY Gehoelzart;
   (* KEY_NAME Kennung *)
   (* KEY_TYP INTEGER *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

ENTITY Gebuesch
SUBTYPE OF (Gehoelz,Flaechenobjekt_Modell);
--- Attribute :
--- Relationen :
END_ENTITY;

ENTITY Hecke
SUBTYPE OF (Gehoelz);
--- Attribute :
   Heckenfunktion                : OPTIONAL Heckenfunktion;
--- Relationen :
   hat_Heckenabschnitt           : LIST [1:?] OF Heckenabschnitt;
END_ENTITY;

ENTITY Heckenfunktion;
   (* KEY_NAME Kennung *)
   (* KEY_TYP INTEGER *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
   Kennung                       : INTEGER;
   Langtext                      : STRING;
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO Heckenfunktion VALUES (1,'Grenzhecke')
INSERT INTO Heckenfunktion VALUES (2,'Sichtschutz')

   END_SQL
*)

ENTITY Heckenabschnitt
SUBTYPE OF (Linienobjekt_Modell);
--- Attribute :
   Breite                        : Zentimeter;
   Hoehe                         : OPTIONAL Meter;
   wahre_Laenge                  : OPTIONAL Meter;
--- Relationen :
   hat_Oeffnung                  : LIST [0:?] OF Oeffnung;
INVERSE
   gehoert_zu_Hecke              : Hecke FOR hat_Heckenabschnitt;
END_ENTITY;

END_SCHEMA; -- Topografie
SCHEMA Liegenschaftsverwaltung;

(*

Historie:

02.08.2006 - 1.011
Einführung des Schemas Liegenschaftsverwaltung gemäß N0080

*)

REFERENCE FROM Strassennetz (Strassenbezeichnung);

REFERENCE FROM Administration (Strassenbaudienststelle_abstrakt);

REFERENCE FROM Allgemeine_Objekte (OKSTRA_Objekt,Datum,QuadratmeterOKSTRA_Schluesseltabelle,
                                   Datum,Quadratmeter,
                                   Bankverbindung,Waehrungsbetrag);

REFERENCE FROM Kataster (Flurstueck);

ENTITY LV_Flurstuecksdetails
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute :
   Bestandsnummer                : OPTIONAL STRING(8);
   Projekt                       : OPTIONAL STRING(250);
   Vermoegensgruppe              : OPTIONAL LV_Vermoegensgruppe;
   Weitere_VMG                   : OPTIONAL BOOLEAN;
   VD_Pruefung                   : OPTIONAL BOOLEAN;
   GEStand                       : OPTIONAL LV_GEStand;
   GEArt                         : OPTIONAL LV_GEArt;
   Erwerbsdatum                  : OPTIONAL Datum;
   Besitzuebergang               : OPTIONAL Datum;
   Bodenwert                     : OPTIONAL Waehrungsbetrag;
   Eigentuemerkurzbezeichnung    : OPTIONAL STRING(80);
   Fortfuehrungsnachweis         : OPTIONAL STRING(100);
   Versiegelte_Flaeche           : OPTIONAL Quadratmeter;
   Belastung_Abt2                : OPTIONAL STRING;
   Belastung_Abt3                : OPTIONAL STRING;
   Bemerkungen                   : OPTIONAL STRING;
   Baubeginn                     : OPTIONAL Datum;
   Entbehrlichkeitspruefung      : OPTIONAL Datum;
   Beurkundungsdaten             : OPTIONAL STRING(250);
   Tausch                        : OPTIONAL BOOLEAN;
   SAP_Projektnummer             : OPTIONAL STRING(50);
   Verschmelzung_Antragsnummer   : OPTIONAL STRING;
   zu_Strasse                    : OPTIONAL Strassenbezeichnung;
   --- Relationen :
   hat_Baubehoerde               : OPTIONAL LV_Behoerde;
INVERSE
   zu_Flurstueck                 : Flurstueck FOR hat_LV_Flurstuecksdetails;
   zugehoerige_Gebuehren         : SET [0:?] OF LV_Gebuehren
                                             FOR zu_LV_Flurstuecksdetails;
END_ENTITY;

ENTITY LV_Vermoegensgruppe;
   (* KEY_NAME Kennung *)
   (* KEY_TYP INTEGER *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute :
   Kennung                       : INTEGER;
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

--- Gruppierung der Einträge:
--- VoNA -> ab 1000
--- LiGG -> ab 2000
--- EgNA -> ab 3000
--- SoNA -> ab 4000

(* SQL :

INSERT INTO LV_Vermoegensgruppe VALUES (1020,'vorgehalten als Biotop allgemein')
INSERT INTO LV_Vermoegensgruppe VALUES (1021,'vorgehalten als Trockenfläche - Biotop')
INSERT INTO LV_Vermoegensgruppe VALUES (1022,'vorgehalten als Feuchtfläche - Biotop')
INSERT INTO LV_Vermoegensgruppe VALUES (1023,'vorgehalten als Wasserfläche - Biotop')
INSERT INTO LV_Vermoegensgruppe VALUES (1024,'vorgehalten als Gehölz/Waldfläche - Biotop')
INSERT INTO LV_Vermoegensgruppe VALUES (1511,'Acker')
INSERT INTO LV_Vermoegensgruppe VALUES (1512,'Grünland, Wiese')
INSERT INTO LV_Vermoegensgruppe VALUES (1513,'Gartenland')
INSERT INTO LV_Vermoegensgruppe VALUES (1514,'Hutung/Unland')
INSERT INTO LV_Vermoegensgruppe VALUES (1515,'Acker/Grünland')
INSERT INTO LV_Vermoegensgruppe VALUES (1516,'Bauland (Hof- u. Gebäudeflä., Vor- u. Hausgarten)')
INSERT INTO LV_Vermoegensgruppe VALUES (1517,'Wasserfläche')
INSERT INTO LV_Vermoegensgruppe VALUES (1518,'Sonstige Flächen')
INSERT INTO LV_Vermoegensgruppe VALUES (1519,'Wald')
INSERT INTO LV_Vermoegensgruppe VALUES (1540,'Str,(GG dch Gde)i.GB v BRD/FB vorg.,j.i.fremd.Baul')
INSERT INTO LV_Vermoegensgruppe VALUES (1541,'Str,(GG d FB/BRD)i.GB i.E.v.Gde/Ldkr j.i.BL BRD/FB')
INSERT INTO LV_Vermoegensgruppe VALUES (1550,'Im GB noch BRD/FB, jed.ber. mit Urk. verk./vertau.')
INSERT INTO LV_Vermoegensgruppe VALUES (1551,'Zum Tausch/Verkauf vorgesehen (im wesentl. bei VN)')
INSERT INTO LV_Vermoegensgruppe VALUES (1552,'Zur Abgabe an FA/BVA/ABD vorgesehen')
INSERT INTO LV_Vermoegensgruppe VALUES (1553,'V.BRD/FB miterw.Fl.and.Baulasttr.n.VN (FB/BRD ...)')
INSERT INTO LV_Vermoegensgruppe VALUES (1554,'Verwertung d. StrBVerw (Abgabe an Behörde/Private)')
INSERT INTO LV_Vermoegensgruppe VALUES (2510,'Straße (Bundes- u. Staatsstraße)')
INSERT INTO LV_Vermoegensgruppe VALUES (2520,'Straßenbestandteil allgemein')
INSERT INTO LV_Vermoegensgruppe VALUES (2521,'Lärmschutzanlage')
INSERT INTO LV_Vermoegensgruppe VALUES (2522,'Böschung')
INSERT INTO LV_Vermoegensgruppe VALUES (2523,'Straßenbegleitgrün, Sichtfläche')
INSERT INTO LV_Vermoegensgruppe VALUES (2524,'Stützmauer')
INSERT INTO LV_Vermoegensgruppe VALUES (2525,'Parkplatz, Busbucht')
INSERT INTO LV_Vermoegensgruppe VALUES (2526,'Graben, Regenrückhaltebecken')
INSERT INTO LV_Vermoegensgruppe VALUES (2527,'Lagerplatz')
INSERT INTO LV_Vermoegensgruppe VALUES (2528,'Brücke')
INSERT INTO LV_Vermoegensgruppe VALUES (2530,'Geh- und Radweg')
INSERT INTO LV_Vermoegensgruppe VALUES (3001,'Acker')
INSERT INTO LV_Vermoegensgruppe VALUES (3002,'Grünland, Wiese, Streuwiese')
INSERT INTO LV_Vermoegensgruppe VALUES (3003,'Gartenland')
INSERT INTO LV_Vermoegensgruppe VALUES (3004,'Hutung/Unland')
INSERT INTO LV_Vermoegensgruppe VALUES (3005,'Acker/Grünland')
INSERT INTO LV_Vermoegensgruppe VALUES (3006,'Hof- und Gebäudeflächen')
INSERT INTO LV_Vermoegensgruppe VALUES (3010,'Wald')
INSERT INTO LV_Vermoegensgruppe VALUES (3025,'bestehende Trockenfläche - Biotop')
INSERT INTO LV_Vermoegensgruppe VALUES (3026,'bestehende Feuchtfläche - Biotop')
INSERT INTO LV_Vermoegensgruppe VALUES (3027,'bestehende Wasserfläche - Biotop')
INSERT INTO LV_Vermoegensgruppe VALUES (3028,'bestehende Gehölzfläche/Waldfläche - Biotop')
INSERT INTO LV_Vermoegensgruppe VALUES (3029,'bestehendes Biotop allgemein')
INSERT INTO LV_Vermoegensgruppe VALUES (3030,'Steinbrüche, Tongruben, Kiesgrube usw.')
INSERT INTO LV_Vermoegensgruppe VALUES (3090,'Wasserfl., Ufermauer (soweit nicht Straßenbestand)')
INSERT INTO LV_Vermoegensgruppe VALUES (3100,'Verwaltungsdienstgebäude, Hof- u. Gebäudefläche')
INSERT INTO LV_Vermoegensgruppe VALUES (3130,'Betriebsgebäude (SM u.ä.)')
INSERT INTO LV_Vermoegensgruppe VALUES (4000,'Grundst in FB, Abfind.Flurnr vorh, oder NA unbek.')
INSERT INTO LV_Vermoegensgruppe VALUES (4800,'Verpflichtung Dritter zu Abtretungen')
INSERT INTO LV_Vermoegensgruppe VALUES (4801,'Verpflichtung d.BVA/FA,Gde,Stadt,Ldkr zur Rückgabe')
INSERT INTO LV_Vermoegensgruppe VALUES (4900,'Dienstbarkeiten')

   END_SQL
*)

ENTITY LV_GEStand;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(2) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : STRING(2);
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO LV_GEStand VALUES ('- ','keine Eintragung')
INSERT INTO LV_GEStand VALUES ('CA','circa Fläche')
INSERT INTO LV_GEStand VALUES ('FN','Fortführungsnachweis')
INSERT INTO LV_GEStand VALUES ('GB','Grundbuch')
INSERT INTO LV_GEStand VALUES ('GR','ganzes Grundstück')
INSERT INTO LV_GEStand VALUES ('GV','Grundbuchberichtigung nach FN möglich')
INSERT INTO LV_GEStand VALUES ('GZ','Zerlegung im GB')
INSERT INTO LV_GEStand VALUES ('UT','Teilverkauf/Tausch vorher ganzes Grundstück')
INSERT INTO LV_GEStand VALUES ('UV','unvermessen')
INSERT INTO LV_GEStand VALUES ('ZV','Zerlegungs- u. Verschmelzungs FN')
INSERT INTO LV_GEStand VALUES ('  ','keine Eintragung')

   END_SQL
*)

ENTITY LV_GEArt;
   (* KEY_NAME Kennung *)
   (* KEY_TYP CHAR(2) *)
SUBTYPE OF (OKSTRA_Schluesseltabelle);
--- Attribute:
   Kennung                       : STRING(2);
   Langtext                      : STRING;
--- Relationen :
UNIQUE
   Kennung_eindeutig             : Kennung;
END_ENTITY;

(* SQL :

INSERT INTO LV_GEArt VALUES ('- ','keine Eintragung')
INSERT INTO LV_GEArt VALUES ('EB','Eigenbesitz')
INSERT INTO LV_GEArt VALUES ('EE','Enteignung')
INSERT INTO LV_GEArt VALUES ('EF','Eigenbesitz - Ers i R d Fb')
INSERT INTO LV_GEArt VALUES ('FB','Flurbereinigung')
INSERT INTO LV_GEArt VALUES ('GG','Grundbuchberichtigung')
INSERT INTO LV_GEArt VALUES ('KA','Kauf')
INSERT INTO LV_GEArt VALUES ('VV','Verfügungsverbot (§ 52 FlurbG)')
INSERT INTO LV_GEArt VALUES ('  ','keine Eintragung')

   END_SQL
*)

ENTITY LV_Behoerde
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Baubehoerdennummer            : OPTIONAL STRING(50);
   Baubehoerdenname              : OPTIONAL STRING(50);
--- Relationen :
   ist_Strassenbaudienststelle   : OPTIONAL SET [1:?] OF Strassenbaudienststelle_abstrakt; (* D *)
INVERSE
   zu_LV_Flurstuecksdetails      : SET [0:?] OF LV_Flurstuecksdetails
                                             FOR hat_Baubehoerde;
END_ENTITY;

ENTITY LV_Gebuehren
SUBTYPE OF (OKSTRA_Objekt);
--- Attribute:
   Verbuchungsstelle             : OPTIONAL STRING(50);
   Aktenzeichen                  : OPTIONAL STRING(250);
   Verwalter                     : OPTIONAL STRING(50);
   Grundsteuer                   : OPTIONAL Waehrungsbetrag;
   Entwaesserung                 : OPTIONAL Waehrungsbetrag;
   Muellabfuhr                   : OPTIONAL Waehrungsbetrag;
   Strassenreinigung             : OPTIONAL Waehrungsbetrag;
   Wasser                        : OPTIONAL Waehrungsbetrag;
   Kaminkehrer                   : OPTIONAL Waehrungsbetrag;
   SonstigeKosten                : OPTIONAL Waehrungsbetrag;
   TextSonstigeKosten            : OPTIONAL STRING(50);
   Gebuehren_Februar             : OPTIONAL Waehrungsbetrag;
   Gebuehren_Mai                 : OPTIONAL Waehrungsbetrag;
   Gebuehren_Juli                : OPTIONAL Waehrungsbetrag;
   Gebuehren_August              : OPTIONAL Waehrungsbetrag;
   Gebuehren_November            : OPTIONAL Waehrungsbetrag;
   Grundsteuermessbescheid       : OPTIONAL Datum;
   Grundsteuerbescheid           : OPTIONAL Datum;
   Einheitswert                  : OPTIONAL Waehrungsbetrag;
   Grundsteuermessbetrag         : OPTIONAL Waehrungsbetrag;
   Hebesatz                      : OPTIONAL Waehrungsbetrag;
   Empfaenger                    : OPTIONAL STRING(80);
   Personenkennnummer            : OPTIONAL STRING(40);
   Kassenzeichen                 : OPTIONAL STRING(40);
   Bankverbindung                : OPTIONAL Bankverbindung;
   Bemerkung                     : OPTIONAL STRING(250);
   Projektnummer                 : OPTIONAL STRING(50);
   Kostentraeger                 : OPTIONAL STRING(50);
   Kostenstelle                  : OPTIONAL STRING(50);
--- Relationen :
   zu_LV_Flurstuecksdetails      : OPTIONAL SET [1:?] OF LV_Flurstuecksdetails;
END_ENTITY;


END_SCHEMA; -- Liegenschaftsverwaltung