SCHEMA Administration;

REFERENCE FROM Strassennetz (Bereichsobjekt_hist, Streckenobjekt_hist, Strasse);

REFERENCE FROM Bauwerke (Teilbauwerk);

REFERENCE FROM Strassenausstattungen (Leitung, Strassenentwaesserung);

REFERENCE FROM Dynamische_Beschilderung (verwaltungstechn_Zuordnung_dyn);

REFERENCE FROM Historisierung (Ereignis, historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (verwaltungstechn_Zuordnung, Datum);

REFERENCE FROM Geometrieschema (Flaechenobjekt_Modell);

ENTITY ASB_Bezeichnung
ABSTRACT SUPERTYPE OF (ONEOF(Verwaltungsbezirk , Strassenbaudienststelle , Baulast_Dritter , sonstige_UI_Partner ));
--- Attribute :
    Bezeichnung_Lang: OPTIONAL STRING(29);
    Bezeichnung_Mittel: OPTIONAL STRING(19);
    Bezeichnung_Kurz: OPTIONAL STRING(11);
--- Relationen :
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY Verwaltungsbezirk
ABSTRACT SUPERTYPE OF (ONEOF(Bundesland , Regierungsbezirk , Kreis_kreisfreie_Stadt , Gemeindebezirk , Ortsteil ))
SUBTYPE OF (Bereichsobjekt_hist, ASB_Bezeichnung, Flaechenobjekt_Modell);
--- Attribute :
--- Relationen :
INVERSE
    von_Strasse: SET [0: ?] OF Strasse FOR in_Verwaltungsbezirk;
    von_verwaltungstechn_Zuordnung: SET [0: ?] OF verwaltungstechn_Zuordnung FOR hat_Verwaltungsbezirk;
    von_dynam_verkehrsreg_Beschild: SET [0: ?] OF verwaltungstechn_Zuordnung_dyn FOR hat_Verwaltungsbezirk;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY Bundesland
SUBTYPE OF (Verwaltungsbezirk);
--- Attribute :
    Kennung_Bundesland: STRING(2) FIXED;
--- Relationen :
INVERSE
    enthaelt_Regierungsbezirk: SET [0: ?] OF Regierungsbezirk FOR ist_in_Bundesland;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY Regierungsbezirk
SUBTYPE OF (Verwaltungsbezirk);
--- Attribute :
    Kennung_Regierungsbezirk: STRING(3) FIXED;
--- Relationen :
    ist_in_Bundesland: SET [1: ?] OF Bundesland;
INVERSE
    enthaelt_Kreis_kreisfr_Stadt: SET [0: ?] OF Kreis_kreisfreie_Stadt FOR ist_in_Regierungsbezirk;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY Kreis_kreisfreie_Stadt
SUBTYPE OF (Verwaltungsbezirk);
--- Attribute :
    Kennung_Kreis: STRING(5) FIXED;
    Kreisart: OPTIONAL Kreisart;
--- Relationen :
    ist_in_Regierungsbezirk: SET [1: ?] OF Regierungsbezirk;
    hat_Kreisverwaltung: SET [1: ?] OF Kreisverwaltung;
INVERSE
    enthaelt_Gemeindebezirk: SET [0: ?] OF Gemeindebezirk FOR ist_in_Kreis_kreisfreie_Stadt;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

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


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

   ('S','Stadtkreis')
   ('L','Landkreis')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION >>

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: SET [1: ?] OF Kreis_kreisfreie_Stadt;
    hat_Gemeindeverwaltung: SET [1: ?] OF Gemeindeverwaltung;
INVERSE
    enthaelt_Ortsteil: SET [0: ?] OF Ortsteil FOR ist_in_Gemeindebezirk;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

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


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

   ('B','in OD für B-, L- und ' ||
    'Kreisstraßen')
   ('L','in OD für L- und Kreisstraßen')
   ('K','für Kreisstraßen')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY Gemeinde_Funktion;
--- Attribute :
    Kennung: STRING(3) FIXED;
    Langtext: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


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

   ('O','Ober-Zentrum')
   ('M','Mittel-Zentrum')
   ('U/G','Unter-/Grund-Zentrum')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY Ortsteil
SUBTYPE OF (Verwaltungsbezirk);
--- Attribute :
    Kennung_Ortsteil: STRING(10) FIXED;
--- Relationen :
    ist_in_Gemeindebezirk: SET [1: ?] OF Gemeindebezirk;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY Strassenbaudienststelle
ABSTRACT SUPERTYPE OF (ONEOF(Land_Ministerium , Regierungspraesidium_Landesamt , Amt , Meisterei , Kreisverwaltung , Gemeindeverwaltung ))
SUBTYPE OF (Bereichsobjekt_hist, ASB_Bezeichnung, Baulasttraeger);
--- Attribute :
    Strasse: OPTIONAL STRING(29);
    Postleitzahl: OPTIONAL STRING(6);
    Ort: OPTIONAL STRING(29);
--- Relationen :
INVERSE
    von_Teilbauwerk: SET [0: ?] OF Teilbauwerk FOR hat_Strassenbaudienststelle;
    von_verwaltungstechn_Zuordnung: SET [0: ?] OF verwaltungstechn_Zuordnung FOR hat_Strassenbaudienststelle;
    von_dynam_verkehrsreg_Beschild: SET [0: ?] OF verwaltungstechn_Zuordnung_dyn FOR hat_Strassenbaudienststelle;
    hat_Ereignis: SET [0: ?] OF Ereignis FOR in_Bauamt;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY Land_Ministerium
SUBTYPE OF (Strassenbaudienststelle);
--- Attribute :
    Schluessel_Land_Ministerium: STRING(2) FIXED;
--- Relationen :
INVERSE
    ist_vorgesetzt: SET [0: ?] OF Regierungspraesidium_Landesamt FOR untersteht_Land_Ministerium;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY Regierungspraesidium_Landesamt
SUBTYPE OF (Strassenbaudienststelle);
--- Attribute :
    Schluessel_Regpraes_Landesamt: STRING(3) FIXED;
--- Relationen :
    untersteht_Land_Ministerium: SET [1: ?] OF Land_Ministerium;
INVERSE
    ist_vorgesetzt: SET [0: ?] OF Amt FOR untersteht_Regierungspr_Ldsamt;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY Amt
SUBTYPE OF (Strassenbaudienststelle);
--- Attribute :
    Schluessel_Amt: STRING(4) FIXED;
--- Relationen :
    untersteht_Regierungspr_Ldsamt: SET [1: ?] OF Regierungspraesidium_Landesamt;
INVERSE
    ist_vorgesetzt: SET [0: ?] OF Meisterei FOR untersteht_Amt;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY Meisterei
SUBTYPE OF (Strassenbaudienststelle);
--- Attribute :
    Schluessel_Meisterei: STRING(6) FIXED;
--- Relationen :
    untersteht_Amt: SET [1: ?] OF Amt;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

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

-- SCHEMA - OKSTRA - INDEX - VERSION >>

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

-- SCHEMA - OKSTRA - INDEX - VERSION >>

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

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY UI_Vereinbarung
SUBTYPE OF (Bereichsobjekt_hist);
--- Attribute :
    Vertragsdatum: OPTIONAL Datum;
--- Relationen :
    mit_UI_Partner: SET [1: ?] OF UI_Partner;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY UI_Partner
ABSTRACT SUPERTYPE OF (ONEOF(Kreisverwaltung , Gemeindeverwaltung , sonstige_UI_Partner ))
SUBTYPE OF (historisches_Objekt);
--- Attribute :
--- Relationen :
INVERSE
    hat_UI_Vereinbarung: SET [0: ?] OF UI_Vereinbarung FOR mit_UI_Partner;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

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

-- SCHEMA - OKSTRA - INDEX - VERSION >>

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


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

   ('H','Hauptbaulast')
   ('G','Gemeindebaulast')
   ('D','Baulast Dritter')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY Baulasttraeger
ABSTRACT SUPERTYPE OF (ONEOF(Strassenbaudienststelle , Kreisverwaltung , Gemeindeverwaltung , Baulast_Dritter ));
--- Attribute :
--- Relationen :
INVERSE
    hat_Baulast: SET [0: ?] OF Baulast FOR von_Baulasttraeger;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

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


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

   (1,'Deutsche Bahn AG')
   (2,'Bundeswasserstraßenverwaltung')
   (3,'Bundesfinanzverwaltung')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY Dokument;
--- Attribute :
    Kennzeichen_Aktenzeichen: OPTIONAL STRING(30);
    Seite: OPTIONAL INTEGER;
    verfuegt: OPTIONAL BOOLEAN;
    Datum: OPTIONAL Datum;
    von_Benutzer: OPTIONAL STRING(12);
    Wirksamkeitsdatum_Dokument: OPTIONAL Datum;
    Text: OPTIONAL STRING(64);
--- Relationen :
INVERSE
    von_Strassenentwaesserung: SET [0: ?] OF Strassenentwaesserung FOR hat_Dokument;
    von_Leitung: SET [0: ?] OF Leitung FOR hat_Dokument;
    ist_Grundlage_fuer_Ereignis: SET [0: ?] OF Ereignis FOR hat_Dokument_zur_Erlaeuterung;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY OD_FS
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
    OD_FS: Tab_OD_FS;
--- Relationen :
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

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


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

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

*)

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY Widmung
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
    rechtsgueltig_ab: Datum;
    Widmung: Tab_Widmung;
--- Relationen :
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION >>

ENTITY Tab_Widmung;
--- Attribute :
    Kennung: INTEGER;
    Langtext: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


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

   (0,'nicht gewidmet')
   (1,'gewidmet')
   (2,'gewidmet, wird umgestuft')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION >>

END_SCHEMA; -- Administration